java equals方法的覆盖
vPublic boolean equals(Object obj);
vObject中的这个方法比较的是地址,因此我们应当在自己的类中按自己的要求覆盖这个方法;
v步骤:
测试形参是否为null;
测试类型是否匹配;
将obj强转为自己的类所属的类型。
最后,比较所有字段。使用==比较基本数据类型,使用equals方法比较对象
v如果所有字段均匹配返回true,否则返回false。
[java]
class PointTest {
private int x;
private int y;
public PointTest() {}
public PointTest(int x, int y) {
this.x = x;
this.y = y;
}
public boolean equals(Object obj) {
if((obj instanceof PointTest) && obj!=null) {
PointTest pt = (PointTest)obj;
if((pt.x==this.x) && (pt.y==this.y)) {
return true;
}
}
return false;
}
}
class PointTest {
private int x;
private int y;
public PointTest() {}
public PointTest(int x, int y) {
this.x = x;
this.y = y;
}
public boolean equals(Object obj) {
if((obj instanceof PointTest) && obj!=null) {
PointTest pt = (PointTest)obj;
if((pt.x==this.x) && (pt.y==this.y)) {
return true;
}
}
return false;
}
}
补充:软件开发 , Java ,