【发布时间】:2020-07-13 14:03:11
【问题描述】:
我不明白为什么在我调用对象上的方法的 Point 类中,它返回 false。因此,在方法中,在第三种/第四种/第五种情况下,即使每个对象的 x 和 y 的值为零,它也会返回 false。
class Point{
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public boolean method(Point p) {
if (p!=null)
return x==p.x && y==p.y;
else return false;
}
}
public class AppPoint{
public static void main(String[] args) {
Point p = new Point (0, 0);
Point q = new Point (0, 0);
Object r = new Point (0, 0);
Object s = new Point (0, 0);
System.out.println(p.method(p));
System.out.println(p.method(q));
System.out.println(p.method(r));
System.out.println(r.method(q));
System.out.println(r.method(s));
}
}
// method return: true true false false false
【问题讨论】:
-
很有趣,因为 r 作为一个对象不知道 equals2 存在
-
始终使用
@Override来覆盖预期的方法。 -
您不应该编辑问题以使答案无效。您将错误的 equals 方法更改为同样愚蠢的方法方法,使 rzwitserloot 的答案难以理解。
-
Cosa avrei dovuto fare dato che mi hanno segnalato la domanda come duplicata e il mio dubbio è rimasto 。 La risposta sotto era corretta ma non mi risolve il mio problema。 Mi interessava solo il motivo per cui stampasse true e false , non il fatto dell'override。 @NomadMaker 谷歌翻译
标签: java boolean instanceof