您的位置:首页 > 其它

NO8-10 实现高质量的equals方法,hashCode()方法,toString()方法

2014-07-27 16:51 507 查看
1.使用==操作符检查“参数是否为这个对象的引用”

2.使用instanceof操作符检查“参数是否为正确的类型”

3.把参数转换成正确的类型

4.对于类中的每个需要检查的域,检查参数中的域是否与该对象中对应的域匹配。

习惯用法:

(field==null?0,field == null : field.equals(o.field))
如果field和0.field通常是相同的对象引用,下面的做法更快一些:

(field == o.field || field=null &&  field.equals(o.field))

public boolean equals(Object obj) {
if(obj==null)
return false;
if(this == obj){
return true;
}
if (obj instanceof Person) {
Person other = (Person) obj;
return  (p.name).equals(this.name);
}
return false;
}

NO9:重写equals()方法时重写hashCode()方法

原则如下:





例如:

public class phoneNumber{

private final short areaCode;

private final short preFix;

private final short lineNumber;

....

}

重写hashCode()

@Override public int hashCode(){

int result = 17;

result = 31 + result + areaCode;

result = 31 + result + preFix;

result = 31 + result + lineNumber;

}

NO10:总是覆写toString()方法

@Override public String toString(){...}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐