为了账号安全,请及时绑定邮箱和手机立即绑定

java问题问题

java问题问题

慕粉4353249 2016-11-30 03:33:05
public boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Dog other = (Dog) obj;if (age != other.age)return false;return true;}重写的equals()方法不是很懂,求解释!!!!
查看完整描述

3 回答

已采纳
?
隔壁老伍丶

TA贡献15条经验 获得超6个赞

public boolean equals(Object obj) {
// 先判断地址是否相同,地址相同肯定是同一个对象,返回true
if (this == obj)
return true;

// 再判断要比较的对象是否为空
if (obj == null)
return false;

// 再判断对象是否为同一类型
if (getClass() != obj.getClass())
return false;

// 同一类型的话,就可以转为Dog
Dog other = (Dog) obj;

// 再判断对象的属性是否相同
if (age != other.age)
return false;

// 都判断完,没有返回false的话,就返回true
return true;
}


查看完整回答
2 反对 回复 2016-11-30
?
慕设计2491986

TA贡献1条经验 获得超1个赞

要想判断两个对象是否相等,不能通过比较两个对象的引用是否相等,这是永远都得不到相等的结果的,因为两个对象的引用永远不会相等,所以正确的比较方法是直接比较这两个对象,比较这两个对象的实质是不是一样的,即这两个对象里面的内容是不是相同的,通过比较这两个对象的属性值是否相同而决定这两个对象是否相等。Object类提供了一个equals()方法来比较两个对象的内容是否相同,因此我们可以采用这个方法去比较两个对象是否在逻辑上“相等”


查看完整回答
1 反对 回复 2016-11-30
?
大羹不和

TA贡献4条经验 获得超0个赞

首先,此方法的最初作用是用于比较两个对象是不是相等,其实就是==,如果重写此方法,那就是说,根据自己对象,已经定义一种比较的规则,比如String重写的equals()方法。自己的见解。
查看完整回答
反对 回复 2016-11-30
  • 3 回答
  • 0 关注
  • 1461 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信