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;
}
慕设计2491986
TA贡献1条经验 获得超1个赞
要想判断两个对象是否相等,不能通过比较两个对象的引用是否相等,这是永远都得不到相等的结果的,因为两个对象的引用永远不会相等,所以正确的比较方法是直接比较这两个对象,比较这两个对象的实质是不是一样的,即这两个对象里面的内容是不是相同的,通过比较这两个对象的属性值是否相同而决定这两个对象是否相等。Object类提供了一个equals()方法来比较两个对象的内容是否相同,因此我们可以采用这个方法去比较两个对象是否在逻辑上“相等”
大羹不和
TA贡献4条经验 获得超0个赞
首先,此方法的最初作用是用于比较两个对象是不是相等,其实就是==,如果重写此方法,那就是说,根据自己对象,已经定义一种比较的规则,比如String重写的equals()方法。自己的见解。
添加回答
举报
0/150
提交
取消
