重写equals方法
时间: 2023-08-04 17:16:10 浏览: 43
当我们需要比较两个对象是否相等时,我们可以使用equals方法。但是,Java中默认的equals方法比较的是两个对象的地址值,而不是它们的内容。因此,我们需要重写equals方法,以便比较两个对象的内容。
重写equals方法的步骤如下:
1. 检查传入的参数是否为null,如果是,返回false。
2. 检查传入的参数是否为当前对象的实例,如果是,返回true。
3. 检查传入的参数是否属于同一个类,如果不是,返回false。
4. 将传入的参数转换为当前类的类型。
5. 比较两个对象的内容,如果相同,返回true,否则,返回false。
下面是一个示例:
```
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (getClass() != obj.getClass()) {
return false;
}
Person other = (Person) obj;
if (age != other.age) {
return false;
}
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
return true;
}
}
```
在上面的示例中,我们重写了equals方法,比较了两个Person对象的name和age属性。如果两个对象的name和age属性都相同,我们认为它们相等。