重写equals()方法

来源:互联网 发布:unity3d shader教程 编辑:程序博客网 时间:2024/05/16 14:39

原谅我盗的图
这里写图片描述

看完这种图应该就能理解比较对象的方法了这里写图片描述

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

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

0 0