Object的equals方法的问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 10:06:43
调用Object的equals方法能否比较两个自己编写的类的对象是否相等,什么情况下是相等的?

在对对象的引用进行比较时,Object中的equals比较的是两个对象应用的位模式,即物理地址。这与“==”一样。因此调用Object的equals方法比较两个自己编写的类的对象的引用是不相等的。必须是一个对象的两个引用才是相等的。
如果需要比较自己的类的两个对象引用,要重写equals方法。
具体如下:
public boolean equals(Object o){
if((o instanceof 你的类名)&&((你的类名)o).get你要比较的有意义的变量名==this.你要比较的有意义的变量名){
return true;
}else{
return false;
}
}

需要注意,必须传入一个Object 而不是别的,否则就不叫重写了。

Object的equals比较对象的内容是否相等
在Object类中==与equals意思是一样的
然后Date类以及String类重写了该方法,变成为equals比较对象的内容是否相等,而==则是比较对象的引用是否相同