java 重写equals()方法

    xiaoxiao2021-04-16  35

    package ketangTest; public class Person { private int age; private String name; public Person(String name,int age) { super(); this.age = age; this.name = name; } public Person() { super(); } 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 String toString() { return "Person [age=" + age + ", name=" + name + "]"; } @Override public boolean equals(Object obj) { // 在对象为空的情况下,为了提高效率就直接返回false,不再向下比较 if (obj == null) { return false; } // 在同一个对象的情况下,为了提高效率就直接返回true,不再向下比较 if (obj == this) { return true; } /* 判断是否同一个类型,若是则将obj向下转型(因为obj是Object类型的)  * 然后再比较它们的内容是否相等  */ if (obj instanceof Person) { Person person = (Person) obj; if (this.name.equals(person.name) && this.age == person.age ) { return true; } } return false; }

    }

    /*-------------------------------测试类------------------------------------------------*/

    package ketangTest; public class TestEquals { public static void main(String[] args) { Person person = new Person("小明", 2); Person person2 = new Person("小明", 2); Person person3 = null; Person person4 = person; System.out.println(person.equals(person3)); System.out.println(person.equals(person2)); System.out.println(person.equals(person4)); } }

    转载请注明原文地址: https://ju.6miu.com/read-672865.html

    最新回复(0)