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
本文介绍了Java中比较运算符==与equals方法的不同用法。==主要用于基本类型和引用类型的比较,而equals是Object类的方法,通常用于比较对象的内容。默认情况下,equals方法与==行为相同,但在子类中通常会重写equals以比较对象属性的值。举例说明了Doctor类重写equals方法后,即使两个对象属性相同,也能正确判断为相等。

被折叠的 条评论
为什么被折叠?



