package practices;
public class demo {
int id;
String name;
public demo(int id,String name) {
this.id = id;
this.name = name;
}
// public boolean equals(Object obj) {
// if(this == obj) {
// System.out.println(1);
// return true;
// }
// if(obj == null) {
// System.out.println(2);
// return false;
// }
// if(getClass() != obj.getClass()) {
// System.out.println(3);
// return false;
// }
demo other = (demo) obj;
// System.out.println(obj.getClass());
不加这个会出问题,因为该 参数是以 obj 类传进来,先jiangqih
if(id != obj.id) {
return false;
}
// System.out.println(4);
// return true;
// }
public static void main(String[] args) {
demo p1 = new demo(200,"tom");
demo p2 = new demo(200,"tom");
// 在对于在Object类里边equals方法和“==”是相同的,
//都是用来判断两个对象的地址是否相等,即两个对象是否是同一个对象。
// 但是equals()函数可以被重写
System.out.println(p1 == p2);
System.out.println(p1.equals(p2));
Integer a = 10;
Integer b = 10;
Integer c = 2;
int d = 10;
// int 不是从object 继承的
// 但是 Integer 是从object 继承过来的
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(a.equals(d));
}
}
Java中equals()函数详解
最新推荐文章于 2024-05-16 14:35:10 发布