`

Java Object equals方法

阅读更多
/**
 * 
 */
package freewill.objectequals;

/**
 * @author freewill
 * @see Core Java page161
 * @desc getClass实现方式,另有instance of实现方式,根据不同场景使用。
 */
public class Employee {
	private String name;
	private int salary;
	private String hireDay;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getSalary() {
		return salary;
	}

	public void setSalary(int salary) {
		this.salary = salary;
	}

	public String getHireDay() {
		return hireDay;
	}

	public void setHireDay(String hireDay) {
		this.hireDay = hireDay;
	}

	@Override
	public boolean equals(Object obj) {
		// a quick test to see if the objects are identical
		if (this == obj)
			return true;
		// must return false if the explicit parameter is null
		if (obj == null)
			return false;
		// if the class don't match,they can't be equal
		if (getClass() != obj.getClass())
			return false;
		// now we know obj is non-null Employee
		Employee other = (Employee) obj;
		// test whether the fileds have identical values
		return name.equals(other.name) && salary == other.salary
				&& hireDay.equals(other.salary);
	}

}


Java语言规范要求equals方法具有下面的特性:
1.自反性:对于任何非空引用x,x.equals(x)应该返回true。
2.对称性:对于任何引用x和y,当且仅当y.equals(x)返回true,x.equals(y)也应该返回true。
3.传递性:对于任何引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,x.equals(z)也应该返回true。
4.一致性:如果x和y引用的对象没有发生变化,反复调用x.equals(y)应该返回同样的结果。
5.对于任意非空引用x,x.equals(null)应该返回false。
分享到:
评论

相关推荐

    Java中equals方法隐藏的陷阱

    ### Java中equals方法隐藏的陷阱 在Java编程中,正确实现`equals`方法至关重要,它不仅影响对象的比较逻辑,还直接关系到集合类(如`HashSet`、`HashMap`等)的行为。本文将深入探讨Java中`equals`方法的一些常见...

    Java Object类认识

    本文将深入探讨`Object`类,以及其核心方法`equals()`与Java中的`==`操作符之间的差异。 `Object`类位于Java的核心库`java.lang`包中,它提供了基本的方法来支持对象的创建、比较和字符串表示。以下是`Object`类的...

    重写equals方法

    例如,public boolean equals(Object o) 是一个正确的重写方法,而 public boolean equals(String o) 是一个重载方法,而不是重写方法。 equals 方法的实现 ------------------------- equals 方法的实现需要遵循...

    java中的==和equals()方法1

    接下来是`equals()`方法,它是Object类的一个实例方法,用于比较对象的内容。默认情况下,`equals()`方法的行为与`==`相同,即比较对象的引用。但是,很多类(如String、Integer等)都重写了`equals()`方法,使其...

    equals(Object) 与 == 的区别

    许多类,如 java.lang.String,已经覆盖了 equals(Object) 方法,以便比较字符串的内容。 例如,在 String 类中,equals(Object) 方法直接比较了两个字符串的内容,如果相同则返回 true,否则返回 false。这就是为...

    关于Object中equals方法和hashCode方法判断的分析

    "关于Object中equals方法和hashCode方法判断的分析" 在 Java 中,Object 类提供了两个重要的方法:equals 方法和 hashCode 方法。这两个方法都是用于比较两个对象是否相等的,但它们的实现机理和作用域却有所不同。...

    Java Object实例代码

    `Object`类提供了处理对象的基本方法,如`toString()`(返回对象的字符串表示),`hashCode()`(返回对象的哈希值)和`equals()`(比较两个对象是否相等)。 2. **继承和多态**: `Object`类是所有类的父类,因此...

    equals方法的重写.docx

    // 重写object的equals方法 public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (this.getClass() != obj.getClass()) return false; Students other = ...

    java 资料 equals 与== 的区别

    equals 方法是 Object 类的方法,用于比较两个对象的值是否相等。对于基本数据类型,equals 方法不能用于比较,因为基本数据类型没有 equals 方法。 对于引用数据类型,equals 方法比较的是对象的值,而不是内存...

    浅谈java 重写equals方法的种种坑

    Java 中的 equals 方法是一种用于比较对象是否相等的方法,它是 Object 类中的一个方法。然而,重写 equals 方法并不是一件简单的事情,因为它需要遵守一些约定,否则可能会出现一些不可预期的行为。在这篇文章中,...

    Java中equals,hashcode和==的区别

    默认情况下,equals 方法都是调用 Object 类的 equals 方法,而 Object 的 equals 方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。因此,如果我们想要比较两个对象的内容,我们需要重写 ...

    Java中Object.equals和String.equals的区别详解

    Java中的Object.equals和String.equals是两个不同的equals方法,它们之间的区别是非常重要的,理解这两个方法的区别对于我们编写高质量的Java代码非常重要。 首先,让我们来了解一下Java中的存储空间。Java中的存储...

    Java equals 方法与hashcode 方法的深入解析.rar

    首先,`equals()`方法是Java Object类中的一个方法,它的默认行为是基于对象的引用进行比较,即如果两个对象引用指向同一个内存地址,那么`equals()`返回`true`,否则返回`false`。然而,当我们在自定义类中重写`...

    java中equals()函数的用法 equals和==的区别

    而`equals()`方法是Object类中的一个成员方法,它的默认行为也是比较两个对象的引用是否相等,与`==`一致。但是,很多类(如String、Integer等)都重写了`equals()`方法,以便进行更深层次的内容比较。例如,String...

    Java中equals()方法重写实现代码

    Java中equals()方法是Object类中定义的,作为所有类的父类,任何类都隐含地继承了该方法。 equals()方法用于判断两个对象的内容是否相同,如果没有重写该方法的类,需要重写该方法来实现对象内容的比较。 equals()...

    Java语言深入_equals

    `Object`类提供了`equals`方法的默认实现,它仅比较对象的引用,也就是说,只有当两个对象是同一个实例时,`equals`才返回`true`。这对于值比较是没有意义的,因此在子类中,我们需要重写`equals`以进行值的比较。 ...

    Java重写equals及hashcode方法流程解析

    equals方法是Java中Object类的一个方法,用于比较两个对象的内存地址是否相等。其源码如下: public boolean equals(Object paramObject){ return(this == paramObject); } 从源码中可以看到,equals方法是用来...

    set接口经常用的hashCode和equals方法详解

    ### set接口中hashCode和equals方法详解 #### 一、引言 在Java编程语言中,`Set`接口作为集合框架的重要组成部分,在实现无重复元素的数据结构方面扮演着关键角色。为了确保元素的唯一性,`Set`接口依赖于对象的`...

    java object

    java hashcode equals 方法的作用 面向对象下object类中的方法

    JAVA之Object类所有方法

    了解并正确使用`Object`类的方法对于编写健壮、高效的Java程序至关重要。在设计和实现类时,根据需要重写`equals()`、`hashCode()`和`toString()`方法,以满足特定的业务需求。同时,理解线程同步方法`wait()`、`...

Global site tag (gtag.js) - Google Analytics