未重写前equals是比较引用的地址, 如比较2个对象, 地址一定是不同的#
重写后, 可以比较对象的属性相同, 则认为对象相同#
public class Demo1_Object {
private int age;
private String name;
Demo1_Object(){}
Demo1_Object(int age,String name){
this.age = age;
this.name = name;
}
public static void main(String[] args) {
Demo1_Object d = new Demo1_Object(12, "xiaoming");
Demo1_Object d2 = new Demo1_Object(12, "xiaohong");
Demo1_Object d3 = new Demo1_Object(12, "xiaoming");
System.out.println(d.equals(d2));
System.out.println(d.equals(d3));
}
public boolean equals(Object obj){
// 重写Object 类中equals方法
if( obj instanceof Demo1_Object ){
Demo1_Object demo = (Demo1_Object)obj;
return this.name.equals(demo.name) && this.age == demo.age;
}
return false;
}
public boolean equals(Demo1_Object dobj){
//这个不是重写, 是重载
return this.name.equals(dobj.name) && this.age == dobj.age;
}
public String toString(){
return (age + name);
}
}