重写equals()方法

原谅我盗的图
重写equals()方法_第1张图片

看完这种图应该就能理解比较对象的方法了重写equals()方法_第2张图片

下面是重写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;
}

总之,要想判断两个对象是否相等,不能通过比较两个对象的引用是否相等,这是永远都得不到相等的结果的,因为两个对象的引用永远不会相等,所以正确的比较方法是直接比较这两个对象,比较这两个对象的实质是不是一样的,即这两个对象里面的内容是不是相同的,通过比较这两个对象的属性值是否相同而决定这两个对象是否相等。

你可能感兴趣的:(java学习)