java 两个对象相等_Java判断两个对象是否相等的规则

Object类中的equals方法用于检测一个对象是否等于另外一个对象。在Object类中,这个方法将判断两个对象是否具有相同的引用。如果两个对象具有相同的引用,它们一定是相等的。从这点上看,将其作为默认操作也是合情合理的。然而对于多数类来说,这种判断并没有什么意义。例如,采用这种方式比较两个PrintStream对象是否相等就完全没有意义。然而,经常需要检测两个对象状态的相等性,如果两个对象的状态相等,就认为这两个对象是相等的。

例如,如果两个雇员对象的姓名、薪水和雇佣日期都一样,就认为它们是相等的(在实际的雇员数据库中,比较id更有意义,利用下面这个示例演示equals方法的实现机制)。

public booleanequals(Object otherObject)

{

Employee other=(Employee)otherObject;//a quick test to see if the objects are identical

if (this == otherObject) return true;//must reture false if the explicit parameter is null

if (otherObject == null) return false;//if the classes don‘t match, they can‘t be equal

if (getClass() !=otherObject.getClass())return false;//test whether the fields have identical values

returnname.equals(other.name)&& salary==other.sala

你可能感兴趣的:(java,两个对象相等)