重写Object equals方法

public boolean equals(Object obj)
{
  if(obj ==null) return false;
  else
  {
    if(obj instanceof Cat)
    {
      cat c = (cat)obj;
      if(c.color == this.color && c.height == this.height)
        {
          return true;
        }
    }
  }
  return false;
}

时间: 2024-12-09 05:15:27

重写Object equals方法的相关文章

Object.equals() 方法

Object.equals() 方法: 1 public class EqualsTest1 { 2 public static void main(String[] args) { 3 //Cat c1 = new Cat(); 4 //Cat c2 = new Cat(); 5 //System.out.println(c1 == c2);//result:false 6 Cat c3 = new Cat(1,2,3); 7 Cat c4 = new Cat(1,2,3);//在重写equa

关于 warning CS0659:“***”重写Object.Equals(object o)但不重写Object.GetHashCode()

对象相等性和同一性 System.Object 类型提供了以下方法, 1 namespace System 2 { 3 // 4 // 摘要: 5 // 支持 .NET Framework 类层次结构中的所有类,并为派生类提供低级别服务.这是 .NET Framework 中所有类的最终基类:它是类型层次结构的根. 6 [ClassInterface(ClassInterfaceType.AutoDual)] 7 [ComVisible(true)] 8 public class Object

关于重写对象equals方法的问题

1.==和equals的区别 a.基本数据类型使用  == 进行值的比较 b.引用类型使用 == 进行比较时,直接比较的是对象的存储地址,即两个引用是否指向了同一个对象. c.equals方法是基类Object中的方法,该方法如果在其他类中没有被重写,则比较的还是地址,即两个引用是否指向了同一个对象,和==是一样的(其实equals方法的默认实现就是==).该方法在一些实现类中已经被重新了,如 String和Integer等包装类,在这些类中用来比较值是否相等. 即:equals方法如果没有重写

java 覆写Object.equals() 方法

1 //覆写Object.equals 2 class Demo { 3 private String name; 4 private int age; 5 public Demo(String name,int age) { 6 this.name=name; 7 this.age=age; 8 } 9 public String toString() { 10 return this.name+this.age; 11 } 12 public boolean equals(Object ob

重写java equals 方法的建议

@Overridepublic boolean equals(Object otherObject) { //1.检测this 与 otherObject 是否引用同一个对象 if (this == otherObject) return true; //2.检测otherObject 是否为null, 如果为null,返回false if (null == otherObject) return false; //3.比较this 与 ohterObject 是否属于同一个类 if(getCl

重写equals方法的约定

1. 什么时候需要重写Object.equals方法 如果类具有自己特有的“逻辑相等”概念(不同于对象等同的概念),而且超类还没有覆盖equals以实现期望的行为,这时我们就需要覆盖equals方法. 这通常属于“值类(value class)”的情形.值类仅仅是一个表示值的类,例如Integer或Date.程序员在利用equals方法来比较值对象的引用时,希望知道它们在逻辑上是否相等,而不是想了解它们是否指向同一个对象. 有一种“值类”不需要覆盖equals方法,即用实例受控确保“每个值至多只

Effective Java 第三版——10. 重写equals方法时遵守通用约定

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 10. 重写equals方法时遵守通用约定 虽然Object是一个具体的类,但它主要是为继承而设计的.它的所有非 final方法(equals.hashCode.toStr

java重写equals方法(重点讲解)

为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往需要重写equals()方法. 我们向一个没有重复对象的集合中添加元素时,集合中存放的往往是对象,我们需要先判断集合中是否存在已知对象,这样就必须重写equals方法. 怎样重写equals()方法? 重写equals方法的要求: 1.自反性:对于任何非空引用x,x.equals(x)应该返回tru

【宋红康学习日记11】Object类与equals方法

1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在String,File,Date类重写了equals方法,比较的是值: 3 String类内存解析 Person p1=new Person("花花",20); Person p2=new Person("曹操",40); syso(p1==p2);//false syso