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
计算机后端-Java-Java核心基础-第14章 面向对象06 15. 总结==与equals().avi
* 字符串的比较可以使用 equals() 方法或 == 操作符 7. 日期和时间: * 日期和时间类型的对象底层都是 long 类型的毫秒值 * 日期和时间类型的对象可以使用 Calendar 和 Date 类来操作 8. 异常: * 异常的父类是 ...
根据给定文件的信息,我们可以提炼出一系列与Java基础及面试相关的知识点,并进行详细的解析: ### 1. Spring、Hibernate、Struts的关系 Spring、Hibernate 和 Struts 是三个非常流行的 Java 框架,它们在 J2EE ...
计算机后端-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()`方法是对象比较的核心组件,尤其在理解面向对象概念时至关重要。本教程将深入探讨`equals()`方法的使用及其在Java中的重要性。`equals()`方法是Object类的一个成员,所有Java类都默认...
Java基础语法部分讨论了数据类型、switch语句的使用限制、数学运算方法和类型转换问题。编码问题涉及Java采用的Unicode编码方案和特点。注释、访问修饰符、运算符以及关键字等基础语法知识也被详细介绍。 流程控制...
总的来说,深入理解并正确实现`equals`方法是Java编程中的基础但关键的技能。这涉及到对Java对象模型的理解,以及如何根据对象的业务逻辑来定义“相等”的概念。通过遵循API规范和良好的编码习惯,我们可以确保`...
在Java编程语言中,`equals()`方法是用于比较对象之间是否相等的重要组成部分。这个方法在`Object`类中被定义,并且可以被所有Java类继承。本教程将重点讲解`equals()`方法的使用,特别是在面向对象编程中的实践。...
【Java基础知识-day01【Object类、常用API】】 在Java编程中,了解和掌握Object类及其常用API是至关重要的,因为所有Java类都间接或直接地继承自Object类。本章将深入探讨Object类的一些核心方法,如toString()和...
在本课程"java基础 集合-21-对象的一对多与多对多"中,我们将深入探讨如何在Java中实现对象之间的关系,特别是一对一、一对多和多对多的关系。 1. **对象的一对一关系**: 在一对一关系中,一个类的对象只对应另一...
总的来说,理解和正确使用 `equals()` 和 `hashCode()` 是Java开发者必备的基础知识,这对于编写健壮、高效的代码至关重要。在进行对象比较和使用哈希表时,这两个方法的合理实现可以极大地提高程序的性能和正确性。
在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`是处理文本字符串的三个重要类。它们之间的主要区别在于...了解这些基础知识对于Java程序员来说至关重要,能够帮助他们在编写代码时做出更高效的选择。
"Java基础面试题" 在Java中,String类中的常用方法有split()、indexOf()、replace()、subString()、equals()、concat()等。其中,split()方法可以将字符串分割成字符串数组,indexOf()方法可以从指定字符提取索引...
Java面向对象(基础)-方法应用 一、方法的重载 在 Java 中,方法的重载(overload)是指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可。满足这样特征的多个方法,彼此之间构成方法的...
在Java面试中,通常会涉及一系列的基础知识点和概念,以考察应聘者是否具备Java编程的扎实基础和对面向对象编程的深入理解。以下是根据提供的文件内容整理的Java知识点详解: ### Java语言特点 Java是一种面向对象...