在类Point中重写Object类的equals方法。使Point对象x和y坐标相同时判定为同一对象。
时间: 2024-05-11 17:17:04 浏览: 61
重写equals方法
好的,这是一个很常见的需求,在 Point 类中重写 equals 方法可以这样实现:
```java
public class Point {
private int x;
private int y;
// 构造方法和其他方法省略
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Point)) return false;
Point point = (Point) o;
return x == point.x &&
y == point.y;
}
// hashCode 方法也需要重写,以保证与 equals 方法一致
@Override
public int hashCode() {
return Objects.hash(x, y);
}
}
```
在这个实现中,我们首先判断如果 o 和 this 是同一个对象,直接返回 true;然后判断 o 是否是 Point 类型,如果不是,返回 false;最后比较两个 Point 对象的 x 和 y 坐标是否相同,如果都相同,就认为这两个 Point 对象相等。
需要注意的是,由于重写了 equals 方法,还需要重写 hashCode 方法,以保证 hashCode 方法与 equals 方法一致。这里使用了 Java 7 中引入的 Objects.hash 方法来生成 hashCode。
阅读全文