在类Point中重写Object类的equals方法。使Point对象x和y坐标相同时判定为同一对象。
时间: 2024-02-18 07:04:00 浏览: 176
好的,让我来为你解答这个问题。
在Java中,Object类的equals方法用于判断两个对象是否相等。默认情况下,该方法使用==运算符来比较两个对象的引用是否相等。如果需要比较对象的内容是否相等,就需要在自定义类中重写equals方法。
对于这个问题,我们需要在Point类中重写equals方法,使得当两个Point对象的x和y坐标相同时,判定为同一对象。具体实现如下:
```
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object obj) {
if (this == obj) { // 如果两个对象引用相同,则返回true
return true;
}
if (obj == null || getClass() != obj.getClass()) { // 如果传入的对象为null或者不是Point类的实例,则返回false
return false;
}
Point other = (Point) obj; // 强制类型转换为Point类型
return this.x == other.x && this.y == other.y; // 比较x和y坐标是否相等
}
}
```
在这个实现中,首先判断两个对象的引用是否相等,如果相等则直接返回true。否则,判断传入的对象是否为null或者不是Point类的实例,如果是则返回false。最后,将传入的对象强制类型转换为Point类型,并比较x和y坐标是否相等,如果相等则返回true,否则返回false。
这样,我们就成功地重写了equals方法,使得当两个Point对象的x和y坐标相同时,判定为同一对象。
阅读全文