当前位置:编程学习 > JAVA >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,