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
提交
取消