对于基本数据类型来说,==比较的是他们的值(值比较)
int a = 2;
int b = 3;
int c = 2;
System.out.println(a == b); // false
System.out.println(a == c); // true
对于引用数据类型来说,==比较的是他们的引用(内存地址)
Person p1 = new Person("tom", 13);
Person p2 = new Person("jerry", 23);
Person p3 = new Person("tom", 13);
System.out.println(p1 == p2); //false
System.out.println(p1 == p3); //false
System.out.println(p1 == p4); //false
****引用数据做比较要重写object对象中的equals方法****
public boolean equals(Object obj) {
//拿obj和自己(this)进行比较,怎么比较呢?比较规则自己定义
if(obj instanceof Person) {
Person tmp = (Person) obj;
if(this.name == tmp.getName()&&this.age == tmp.getAge()) {
//相等
return true;
} else {
//不等
return false;
}
}
return false;
}
Equals 一定要重写equals方法
是拿Boj和自己(this)进行比较,比较规则自己定义
如果打印一个对象 默认调用的是to string方法 可以重写to string方法