我完全不知道下面的equals方法在做什么。我认为它正在检查一个物体是否与某物相等,但我很困惑。
public class Point {
private int x,y;
public Point(int x, int y){
x = this.x;
y = this.y;
}
public boolean equals(Point p){ // I am confused by what this method is doing?
return x == p.x && y == p.y; // What is p.x and p.y doing?
}
public int getx(){
return x;
}
public int gety(){
return y;
}
public String toString(){
return new String("(" + x + ", " + y + ")");
}
}
答案 0 :(得分:4)
检查两个点是否具有相同的内容。
p.x
是x
引用的对象的p
字段。这是您可以将当前对象的内容与另一个对象的内容进行比较的方法。
这里也有一个严重的错误。正常使用的模式是
public boolean equals(Object o) {
这是通常调用的方法,因此大多数实用程序类(如HashSet或ArrayList)都不会调用您的方法。
答案 1 :(得分:1)
函数equals接受一个参数,一个名为Point
的{{1}}对象。
然后该功能检查它的'当前p
值等于x
x
的{{1}}值。
(Point
)
p
也是如此。
(x == p.x
)
如果它们都为真,则返回两个点对象相等。
(也就是说,当前y
对象等于传递给函数y == p.y
的{{1}} Point
。)