原谅我盗的图
看完这种图应该就能理解比较对象的方法了
下面是重写equals()的代码
//实现任意数据类型的equals()方法的模板
public boolean equals(Obeject x)
{
if(this==x) renturn true;//该对象引用和参数对象的引用是否相同
if(x==null) return false;
if(this.getClass()!=x.getClass()) return false;
Date that=(Date) x;
if(this.day!=that.day) return false;
if(this.month!=that.month) return false;
if(this.year!=that.year) return false;
return true;
}
总之,要想判断两个对象是否相等,不能通过比较两个对象的引用是否相等,这是永远都得不到相等的结果的,因为两个对象的引用永远不会相等,所以正确的比较方法是直接比较这两个对象,比较这两个对象的实质是不是一样的,即这两个对象里面的内容是不是相同的,通过比较这两个对象的属性值是否相同而决定这两个对象是否相等。