java问题问题

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()方法不是很懂,求解释!!!!

慕粉4353249
浏览 1462回答 3
3回答

隔壁老伍丶

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

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

大羹不和

首先,此方法的最初作用是用于比较两个对象是不是相等,其实就是==,如果重写此方法,那就是说,根据自己对象,已经定义一种比较的规则,比如String重写的equals()方法。自己的见解。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java