equals()方法

来源:互联网 发布:php 获取项目根目录 编辑:程序博客网 时间:2024/05/16 23:36

equals Object类中的方法比较2个对象在内存中的起始地址是否相等 如果需要比较对象中的成员属性的值可以覆盖equals()方法 要覆盖equals()方法也得覆盖hashCode()方法

 equals跟==号的区别

如果是基本类型用equals和用==号比较没区别  

如果是 String类型如果没new String(); 或者new String();以后 又把基本类型赋值给它 也跟用==好没区别否者比较的是该对象的起始地址

是其他的引用类型的话比较的也是该对象的起始地址。

一个对象和基本类型比较结果除了是运行时报错(该对象的类覆盖了equals方法且试图把基本类型转换成该对象的类型)就一定是false;

如果想让一个对象和一个基本类型比较 可以让那个对象中的值是基本类型的成员属性equals基本类型,用的是该成员属性类型的equals方法  或者修改该对象中的equals部分代码。

public boolean equals(Object obj){

if (this==obj){

     return true;

}

if (obj==null){

    return false;

}

if (getClass()!=obj.getClass()){

     if (成员属性.equals(obj)){

           return true;

     }

     return false;

}

this对象的类名 other=(this对象的类名)obj;

if (成员属性.equals(other.成员属性)){

    return true;

}

return false;

}

原创粉丝点击