重写比较

来源:互联网 发布:中国电信云计算 加班 编辑:程序博客网 时间:2024/05/01 23:07
/** * 1.Object equals 方法 用于比较对象是否相等。<br/> * 2.比较是否是同一个对象(同一个体)使用 ==<br/> * 3.比较两个不同的对象,在逻辑上是否一样需要使用 equals 方法。<br/> * ##建议重写equals方法实现对象是否相等比较<br/> * @author Heying * */  public static void main(String[] args) {      Point a = new Point(1, 2);      Point b = a;      Point c = new Point(1, 2);      // 1. 比较 ==       // 1. 比较 ==       System.out.println("a 与  b 是否完全相同 >>>  " +(a == b));      System.out.println("a 与  c 是否完全相同 >>>  " +(a == c));      System.out.println();      // 2. 比较equal       System.out.println("a 与  b 是否逻辑相同 >>>  " +(a.equals(b)));      System.out.println("a 与  c 是否逻辑相同 >>>  " +(a.equals(c)));  }  class Point{    int x,y;    public Point(int x, int y) {        this.x = x;        this.y = y;    }    @Override    public boolean equals(Object obj) {        // 1. obj 对象为空return false        if(obj == null){            return false;        }        // 2. 同一个对象就return true        if(obj == this){            return true;        }        // 3. 检查obj 是否是Point的类型 然后查看时候相等 return true        if(obj instanceof Point){            Point other = (Point) obj;  // 强转            return (this.x == other.x && this.y == other.y);        }           return false;    }}
0 0
原创粉丝点击