java equals方法的覆盖
2013-05-07 12:46
309 查看
Public boolean equals(Object obj);
Object中的这个方法比较的是地址,因此我们应当在自己的类中按自己的要求覆盖这个方法;
步骤:
测试形参是否为null;
测试类型是否匹配;
将obj强转为自己的类所属的类型。
最后,比较所有字段。使用==比较基本数据类型,使用equals方法比较对象
如果所有字段均匹配返回true,否则返回false。
Object中的这个方法比较的是地址,因此我们应当在自己的类中按自己的要求覆盖这个方法;
步骤:
测试形参是否为null;
测试类型是否匹配;
将obj强转为自己的类所属的类型。
最后,比较所有字段。使用==比较基本数据类型,使用equals方法比较对象
如果所有字段均匹配返回true,否则返回false。
class PointTest { private int x; private int y; public PointTest() {} public PointTest(int x, int y) { this.x = x; this.y = y; } public boolean equals(Object obj) { if((obj instanceof PointTest) && obj!=null) { PointTest pt = (PointTest)obj; if((pt.x==this.x) && (pt.y==this.y)) { return true; } } return false; } }
相关文章推荐
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- Java equals方法覆盖
- Java进阶 —— 覆盖equals方法的技巧
- Java探索之旅(12)——equals方法及其覆盖
- Java 覆盖equals和hashCode方法
- Java探索之旅(12)——equals方法及其覆盖
- 【Java实战】源码解析为什么覆盖equals方法时总要覆盖hashCode方法
- 《问题总结》JAVA什么时候要覆盖toString()、equals()、hashCode()方法??为什么要覆盖呢? 《通俗回答》
- Java覆盖equals方法
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- java——覆盖equals方法没有想象中那么简单
- java 中equals方法的覆盖
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- 覆盖 equals 方法时应同时覆盖 hashCode 。(java)
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- 覆盖equals方法的技巧和要求(effective java总结)
- Effective java3——覆盖equals方法的通用约定
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)