怎么会是这个结果。。请为小白解答一下!!

永恒的狼牙 2018-09-21 12:02:37

/*
* equals方法
*/
public class Demo09 {
public static void main(String[] args) {

Person p1 = new Person("小明",17);
Person p2 = new Person("小明",17);

System.out.println(p1.equals(p2));// 判断的是对象的内容
System.out.println(p1 == p2);// 判断的是对象的地址
}

}

class Person extends Object {
private int age;
private String name;

Person(String name,int age) {
this.age = age;
this.name = name;
}

public boolean equlas(Object obj) {
if (this == obj) // 如果两个引用指向的同一个对象,不用进行转换。直接比较地址。
return true;

if (!(obj instanceof Person)) { // 判断是否是同一类型
return false;
} else {
Person p = (Person) obj;// 要想使用子类对象的特有属性和行为,必须对其进行向下转型。
return this.name.equals(p.name) && this.age == p.age;
}
}
}

...全文
192 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
永恒的狼牙 2020-04-02
  • 打赏
  • 举报
回复
equals
永恒的狼牙 2020-04-02
  • 打赏
  • 举报
回复
equlas 拼写错误,方法没有被重写,调用的是Object中的方法。
幻世扬尘 2018-10-25
  • 打赏
  • 举报
回复
if(this==obj)比较的是地址

2,076

社区成员

发帖
与我相关
我的任务
社区描述
华为认证、思科认证、项目管理、计算机等级考试、Linux认证、微软认证、H3C认证等IT认证相关的技术交流空间。
社区管理员
  • IT培训
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧