重写部分Object类方法

例如有Student类,记录了学生的姓名和年龄。
通过重写Object类中部分方法实现:

  1. 打印对象信息
  2. 比较对象内容是否相同
import java.util.Objects;

public class Person {

    public String name;
    public int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() { // 重写toString方法 打印对象信息
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) { // 重写equals方法 比较对象内容是否相同
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() { // 重写hashCode方法 如果对象一样,那么值一样
        return Objects.hash(name, age);
    }
}
public class Test {

    public static void main(String[] args) {
        Person person1 = new Person("小明", 10);
        Person person2 = new Person("小明", 10);

        // 调用重写的toString方法
        System.out.println(person1);

        // 调用重写的equals方法
        System.out.println(person1.equals(person2));

        // 调用重写的hashcode方法
        System.out.println(person1.hashCode());
        System.out.println(person2.hashCode());
    }
}

// Person{name='小明',age=10}
// true
// 23458764
// 23458764