JAVA中复写equals方法

Posted kuillldan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中复写equals方法相关的知识,希望对你有一定的参考价值。

一般说来,所有类都应该复写Object中的equals方法。步骤大概分三步:

1) 判断两个对象地址是否一致

2)判断第二个对象是否为同一个子类实例

3)判断内容是否一致

class Person
{
    public int age;
    public String name;

    public Person(int age, String name)
    {
        this.age = age;
        this.name = name;
    }
    public boolean equals(Object obj)
    {
        //第一步 判断两个对象地址是否一致
        if(this == obj)
            return true;
        
        //判断第二个对象是否为同一个子类实例
        if(!(obj instanceof Person))
            return false;

        //判断内容是否一致
        Person anotherOne = (Person)obj;
        if(this.name == null && anotherOne.name != null)
            return false;
        if(this.name.equals(anotherOne.name) && this.age == anotherOne.age)
            return true;

        return false;
    }
}

public class  Hello
{ 
    public static void main(String[] args) 
    {
         Person p1 = new Person(18,"cherry");
         Person p2 = new Person(18,"cherry");

         System.out.println(p1.equals(p2));
    }  
     
}

 

以上是关于JAVA中复写equals方法的主要内容,如果未能解决你的问题,请参考以下文章

Java面试题:==和equals比较

重写equals 方法的注意事项

重写了equals方法为何需要重写 hashCode

为啥重写equals方法,一定要重写HashCode方法?

字符串比较--小问题大智慧

Java---hashCode()和equals()