java.lang.Object;
public boolean equals(Object object){ }
默认实现方式为(this == object),比较两个对象地址是否相同。
可以被覆盖,覆盖后比较的是两个对象的内容是否相同。
equals()方法覆盖步骤
1.比较两个引用是否指向同一个对象。
2.判断obj是否为null。
3.判断两个引用指向的实际对象类型是否一致。
4.强制类型转换。
5.依次比较各个属性是否相同。
例如:
class Student {
private 类型1 属性名1;
private 类型2 属性名2;
private 类型3 属性名3;
private 类型4 属性名4;
//省略构造方法
//省略set、get
@Override
public boolean equals(Object obj) {
//1.判断是否为同一个对象(地址是否相同)
if (this == obj ){return true;}
//2.判断是否为空指针
if (obj == null ){return false;}
//3.判断是否为同类型
if (this.getClass() != obj.getClass()){ return false; }
//4.强转为实现类类型
Student s = (Student)obj;
//5.比较内容(实现类的属性值)是否相同
if (this.属性名1.equals(s.属性名1) && this.属性名2.equals(s.属性名2)
&& this.属性名3.equals(s.属性名3) && this.属性名4.equals(s.属性名4)) {
return true;
}
//6.默认返回不相同
return false;
}
}