对比两个自定义对象是否相等

    xiaoxiao2025-05-06  54

    重写equals()方法的步骤一般如下: 1、先用“==”判断是否相等。

    2、判断equals()方法的参数是否为null,如果为null,则返回false;因为当前对象不可能为null,如果为null,则不能调用其equals()方法,否则抛java.lang.NullPointerException异常。

    3、当参数不为null,则如果两个对象的运行时类(通过getClass()获取)不相等,返回false,否则继续判断。

    4、判断类的成员是否对应相等。往下就随意发挥了。

    public class Dog { private int age; private String name; public Dog(int age,String name){ this.age=age; this.name=name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object obj) { if(obj==null){ return false; } if(this==obj){ return true; } if(obj instanceof Dog){ Dog dog=(Dog)obj; if(dog.age==this.age&&dog.name.equals(this.name)){ return true; }else{ return false; } } return false; } public static void main(String[] args){ Dog dog1=new Dog(12,"wangcai"); Dog dog2=new Dog(12,"wangcai"); Dog dog3=new Dog(16,"wangcai"); System.out.println(dog1.equals(dog2));//true System.out.println(dog1.equals(dog3));//false } }
    最新回复(0)