Object 中 equals 类
时间: 2024-03-24 20:36:47 浏览: 49
Object 类中的equals()方法.pptx
在Java中,所有的对象都继承了Object类中的equals()方法。equals()方法用于比较两个对象是否相等,其默认实现是比较两个对象的引用是否相等。也就是说,如果两个对象的引用指向同一个内存地址,那么它们就相等,否则它们不相等。
如果想要比较两个对象的内容是否相等,就需要在自定义的类中覆盖equals()方法,根据自定义的比较规则来实现。在覆盖equals()方法时,需要注意以下几点:
1. equals()方法必须满足自反性、对称性、传递性和一致性。
2. equals()方法必须检查参数是否为null,并返回false。
3. equals()方法必须检查参数是否为同一类型的对象,并返回false。
4. equals()方法必须比较对象的内容而不是引用。
例如,下面是一个自定义的Person类,覆盖了equals()方法来比较两个Person对象的内容是否相等:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Person other = (Person) obj;
if (!Objects.equals(this.name, other.name)) {
return false;
}
if (this.age != other.age) {
return false;
}
return true;
}
}
```
在这个例子中,覆盖了equals()方法来比较两个Person对象的name和age属性是否相等。需要注意的是,equals()方法中使用了Objects.equals()方法来比较两个字符串是否相等,这个方法可以避免了比较null值时的NullPointerException异常。
阅读全文