1.重写equals方法,就必须遵守如下规范:
1.对于任何引用类型, o.equals(o) == true成立.
2.如果 o.equals(o1) == true 成立,那么o1.equals(o)==true也一定要成立.
3.如果 o.equals(o1) == true 成立且 o.equals(o2) == true 成立,那么
o1.equals(o2) == true 也成立.
4.如果第一次调用o.equals(o1) == true 或 o.equals(o1) == false成立,
在o和o1没有改变的情况下以后的任何次调用都成立.
5.o.equals(null) == false
2.高质量的equals的写法
1.使用==操作符检查”实参是否为指向对象的一个引用
“ ,如果是的话返回true
if (getClass() != obj.getClass()) {
return false;
}
2.使用instanceof操作符检查”实参是否为正确的类型
“,这里正确的类型
是指equals方法所做的类
if (obj == null || !(obj instanceof MyObject2)) {
return false;
}
3.把实参转换为正确的类型
4.对于该类中的每一个关键域
(要比较的成员),检查参数中的域与当前的域是否匹配
域的比较通常为:(field=o.field || (field!=null && field.equals(o.field)))
分享到:
相关推荐
equals() 是 Java 中的一个方法,用于比较对象是否相等。它是 Object 类的方法,在许多类中都可以使用。 在默认情况下,equals() 方法用于比较两个对象的引用是否相等,即判断它们是否指向同一个内存地址。这是通过...
计算机后端-Java-Java核心基础-第14章 面向对象06 14. 重写equals().avi
计算机后端-Java-Java核心基础-第14章 面向对象06 13. equals()的使用.avi
296.294.JAVA基础教程_面向对象(中)-equals()的使用(296).rar
299.297.JAVA基础教程_面向对象(中)-equals()练习1:代码实现(299).rar
计算机后端-Java-Java核心基础-第14章 面向对象06 15. 总结==与equals().avi
计算机后端-Java-Java核心基础-第14章 面向对象06 16. equals()练习1:代码实现.avi
计算机后端-Java-Java核心基础-第14章 面向对象06 17. equals()练习2:代码实现.avi
计算机后端-Java-Java核心基础-第24章 集合01 23. 关于hashCode()和equals()的重写.avi
主要介绍了Java编程中的equals方法使用全解,是Java入门学习中的基础知识,需要的朋友可以参考下
equals()方法和hashCode()方法 270 数据结构 273 Array方法类汇总 304 Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下...
NULL 博文链接:https://lingf.iteye.com/blog/1358267
其中,讨论了Java为什么不支持多继承、==和equals的区别、方法重载的条件、String为何设计成不可变、包装类的应用场景、Integer的高速缓存机制等多个方面。 通过面试题的逐一解答,读者可以了解到Java语言的一些...
Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)
Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte...
第3章 面向过程(数组和方法) 4课时 理解如何声明数组、构造数组、初始化数组以及使用数组中的各个元素。 清楚数组作为对象处理,创建数组对象时指定数组大小。 能够声明和操作多维数组...
方法(1)-无返回值的方法定义 方法-无返回值的方法定义 清楚方法定义的两个组成部分 理解并正确确定方法的头部 会正确编写无返回值方法的方法体 方法定义 修饰符 返回值类型 方法名(参数列表){ …… …… } 方法...
动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础...适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础更扎实的小伙伴,配套资料下载:http://www.bjpowernode.com/?csdn
298.296.JAVA基础教程_面向对象(中)-总结==与equals()(298).rar
equals和hashcode方法 143 泛型 144 思考作业 145 上机作业 145 第八章 IO技术 146 为什么需要学习IO技术 146 基本概念 146 数据源 146 流的概念 146 第一个简单的IO流程序及深入(将文件中的数据读入) 146 Java...