java重写equals方法代码
时间: 2023-08-29 12:08:11 浏览: 95
下面是一个例子:
```
public class Person {
private String name;
private int age;
// 构造函数
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 重写 equals 方法
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof Person)) {
return false;
}
Person other = (Person) obj;
return this.name.equals(other.name) && this.age == other.age;
}
}
```
在这个例子中,我们重写了 `equals` 方法来比较两个 `Person` 对象是否相等。我们首先判断两个对象是否是同一个对象,如果是,直接返回 `true`。接下来,我们判断传入的对象是否是 `Person` 类型,如果不是,返回 `false`。最后,我们将传入的对象强制转换成 `Person` 类型,并比较两个 `Person` 对象的 `name` 和 `age` 是否相等,如果相等,返回 `true`,否则返回 `false`。
需要注意的是,我们在重写 `equals` 方法时,还要重写 `hashCode` 方法,以保证两个相等的对象具有相同的哈希值,否则在使用哈希表等数据结构时,会出现问题。
阅读全文