Java中equals方法重写举例
时间: 2024-03-07 16:49:39 浏览: 71
在Java中,equals方法是用于比较两个对象是否相等的方法。默认情况下,equals方法比较的是两个对象的引用是否相等,即比较地址。如果我们想比较两个对象的内容是否相等,就需要重写equals方法。
下面是一个重写equals方法的例子:
```
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 (this == obj) {
return true;
}
if (!(obj instanceof Person)) {
return false;
}
Person other = (Person) obj;
return this.name.equals(other.name) && this.age == other.age;
}
}
```
在这个例子中,我们定义了一个Person类,包含name和age两个属性,并重写了equals方法。在重写equals方法时,我们首先判断传入的对象是否为null,如果是null则返回false;然后判断传入的对象是否为this对象,如果是则返回true;最后判断传入的对象是否为Person类型,如果不是则返回false。如果都不满足,则将传入的对象强制转换为Person类型,然后比较name和age两个属性的值是否相等,如果相等则返回true,否则返回false。
这样,我们就实现了自定义的equals方法,可以根据需要比较两个Person对象的内容是否相等。在使用时,只需要调用equals方法即可,例如:
```
Person p1 = new Person("Tom", 20);
Person p2 = new Person("Tom", 20);
System.out.println(p1.equals(p2)); // 输出 true
```
在这个例子中,我们创建了两个Person对象p1和p2,它们的name和age属性都相等。调用equals方法比较它们是否相等,输出结果为true。
阅读全文