/**
*
*/
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`方法至关重要,它不仅影响对象的比较逻辑,还直接关系到集合类(如`HashSet`、`HashMap`等)的行为。本文将深入探讨Java中`equals`方法的一些常见...
本文将深入探讨`Object`类,以及其核心方法`equals()`与Java中的`==`操作符之间的差异。 `Object`类位于Java的核心库`java.lang`包中,它提供了基本的方法来支持对象的创建、比较和字符串表示。以下是`Object`类的...
例如,public boolean equals(Object o) 是一个正确的重写方法,而 public boolean equals(String o) 是一个重载方法,而不是重写方法。 equals 方法的实现 ------------------------- equals 方法的实现需要遵循...
接下来是`equals()`方法,它是Object类的一个实例方法,用于比较对象的内容。默认情况下,`equals()`方法的行为与`==`相同,即比较对象的引用。但是,很多类(如String、Integer等)都重写了`equals()`方法,使其...
许多类,如 java.lang.String,已经覆盖了 equals(Object) 方法,以便比较字符串的内容。 例如,在 String 类中,equals(Object) 方法直接比较了两个字符串的内容,如果相同则返回 true,否则返回 false。这就是为...
"关于Object中equals方法和hashCode方法判断的分析" 在 Java 中,Object 类提供了两个重要的方法:equals 方法和 hashCode 方法。这两个方法都是用于比较两个对象是否相等的,但它们的实现机理和作用域却有所不同。...
`Object`类提供了处理对象的基本方法,如`toString()`(返回对象的字符串表示),`hashCode()`(返回对象的哈希值)和`equals()`(比较两个对象是否相等)。 2. **继承和多态**: `Object`类是所有类的父类,因此...
// 重写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 = ...
equals 方法是 Object 类的方法,用于比较两个对象的值是否相等。对于基本数据类型,equals 方法不能用于比较,因为基本数据类型没有 equals 方法。 对于引用数据类型,equals 方法比较的是对象的值,而不是内存...
Java 中的 equals 方法是一种用于比较对象是否相等的方法,它是 Object 类中的一个方法。然而,重写 equals 方法并不是一件简单的事情,因为它需要遵守一些约定,否则可能会出现一些不可预期的行为。在这篇文章中,...
默认情况下,equals 方法都是调用 Object 类的 equals 方法,而 Object 的 equals 方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。因此,如果我们想要比较两个对象的内容,我们需要重写 ...
Java中的Object.equals和String.equals是两个不同的equals方法,它们之间的区别是非常重要的,理解这两个方法的区别对于我们编写高质量的Java代码非常重要。 首先,让我们来了解一下Java中的存储空间。Java中的存储...
首先,`equals()`方法是Java Object类中的一个方法,它的默认行为是基于对象的引用进行比较,即如果两个对象引用指向同一个内存地址,那么`equals()`返回`true`,否则返回`false`。然而,当我们在自定义类中重写`...
而`equals()`方法是Object类中的一个成员方法,它的默认行为也是比较两个对象的引用是否相等,与`==`一致。但是,很多类(如String、Integer等)都重写了`equals()`方法,以便进行更深层次的内容比较。例如,String...
Java中equals()方法是Object类中定义的,作为所有类的父类,任何类都隐含地继承了该方法。 equals()方法用于判断两个对象的内容是否相同,如果没有重写该方法的类,需要重写该方法来实现对象内容的比较。 equals()...
`Object`类提供了`equals`方法的默认实现,它仅比较对象的引用,也就是说,只有当两个对象是同一个实例时,`equals`才返回`true`。这对于值比较是没有意义的,因此在子类中,我们需要重写`equals`以进行值的比较。 ...
equals方法是Java中Object类的一个方法,用于比较两个对象的内存地址是否相等。其源码如下: public boolean equals(Object paramObject){ return(this == paramObject); } 从源码中可以看到,equals方法是用来...
### set接口中hashCode和equals方法详解 #### 一、引言 在Java编程语言中,`Set`接口作为集合框架的重要组成部分,在实现无重复元素的数据结构方面扮演着关键角色。为了确保元素的唯一性,`Set`接口依赖于对象的`...
java hashcode equals 方法的作用 面向对象下object类中的方法
了解并正确使用`Object`类的方法对于编写健壮、高效的Java程序至关重要。在设计和实现类时,根据需要重写`equals()`、`hashCode()`和`toString()`方法,以满足特定的业务需求。同时,理解线程同步方法`wait()`、`...