Java---equals方法

1.如果某个类没有对equals方法重写的话,equals默认和==相同。即使两个对象的内容相同,equals的结果也为false。如:

 Cat c1=new Cat(1,2);

 Cat c2=new Cat(1,2);

 System.out.println(c1==c2);//false;

 System.out.println(c1.equals(c2));//false;

2.String类和Date类对equals方法进行了重写,所以该类的equals是比较两个对象的内容是否相同。如:

 String s1=new String("hello");

 String s2=new Stirng ("hello");

 System.out.println(s1==s2);//false;

 System.out.println(s1.equals(s2));//true;

3.可以在某个类中重写equals方法。如:

class Cat{
 int age;
 int weight;

 //构造方法
 public Cat(int age,int weight) {
 this.age=age;
 this.weight=weight;
}

 //重写equals方法

public boolean equals(Object obj){
 if(obj==null){
  return false;
 }
 if(obj instanceof Cat){
  Cat c=(Cat)obj;
  if(c.age==this.age && c.weight==this.weight ){
   return true;
  }
 }
 return false;
}
}

原文地址:https://www.cnblogs.com/beast-king/p/3901632.html