1. == 是一种 比较运算符, 可用于对基本类型的比较,比较两个值是否相等。 也可以用于对引用类型的比较,判断是否为同一个对象。
Doctor doctor1 = new Doctor("jack",20); Doctor doctor2 = new Doctor("jack",20);
虽然两个对象的属性的内容完全相同,但是他们指向了两个不同的对象,用== 判断结果为false
2 equals 是 Object类中的一个方法,因此Java中所有的类都可以使用equals方法,
它不可用于基本数据类型的比较
可用于引用类型的比较,默认比较两个对象是否相同,是否为同一个对象(效果与 == 相同)
但往往,子类中都重写了equals方法用于比较对象的属性内容是否相同
public boolean equals(Object obj){
if(this == obj){
return true;
}
if( ! (obj instanceof Doctor)){
return false;
}
Doctor doctor = (Doctor)obj;
return this.age == doctor.age && this.name.equals(doctor.name);
}
上述代码重写equals 方法后
Doctor doctor1 = new Doctor("jack",20);
Doctor doctor2 = new Doctor("jack",20);
两个对象中的属性内容完全相同,调用equals方法返回的就为true