equals 是Object类的方法在不被覆盖的情况下跟==号的作用是一样的都是比较内存空间地址是否相等
并返回值
这个方法只有覆盖了才能体现它的意义 用来比较一个对象中的某个是否跟定外一个对象中的那个属性的值相等 而且JAVA设计这个方法也是希望被我们覆盖的
基本数据类型一般都覆盖了这个方法 所以"safd".equals("sf")比较的就不是内存空间的值是否想到了 而是它们的值是否相等
如比较Demo类d对象的 age是否和d1对象的值相等
public class Demo{
private int age;
public Demo(int age){
this.age=age;
}
public boolean equals(Object obj){
if(obj.getClass()==this.getClass()){
Demo d=new Demo();
return d.age==this.age;
{
return false;
}
}
class De{
public static void main(String args[]){
Demo d=new Dmoe();
Demo d1=new Demo();
System.out.println(d.equals(d1));
}
} |