/**
* 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;
}
}
重写比较
最新推荐文章于 2020-11-06 16:49:01 发布