8.19 对象比较 equals
demo1 equals 实例化参数内容相同才相等-- 类外对比
class Person {
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
@Override
public String toString(){
return "姓名:" + this.name + ",年龄:" + this.age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
public class HelloWorld {
public static void main(String args[]){
Person perA = new Person("张三",22);
Person perB = new Person("张三",22);// 当2个对象实例化内容不同时,equals判断返回false
if(perA.getName().equals(perB.getName()) && perA.getAge().equals(perB.getAge())){
System.out.println("同一个对象");
} else {
System.out.println("不是一个对象");
}
}
}
demo2 类内对比---这个方法,开发中会经常遇到!!!!
class Person {
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
// equals()方法这个时候会有两个对象:当前对象this,传入的Object
public boolean equals(Object obj){
if(!(obj instanceof Person)){//实例类型判断
return false;
}
if(obj == null){
return false;
}
if(obj == this){ //相同地址,则认为是同一个对象
return true;
}
Person per = (Person) obj;// 获取子类中的属性---????
return this.name.equals(per.name) && this.age == per.age;
}
}
public class HelloWorld {
public static void main(String args[]){
Person perA = new Person("张三",22);
Person perB = new Person("张三",22);
System.out.println(perA.equals(perB));
}
}
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2022-06-08 tp3.2 企业转账到零钱