package com.inmind.object01; import java.util.Objects; public class Person {//直接继承自Object String name; int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{" + "age=" + age + ", name='" + name + '\'' + '}'; } /*@Override public boolean equals(Object obj) { //我希望在Person比较时,只比较内容(姓名和年龄),而不是地址 //只要姓名和年龄是一致的,那就是同一个人 //先直接判断地址是否相同,如果地址相同,则认为内容相同 if (this == obj) { return true; } //先判断类型,如果类型不一致,则认为内容不同 if (obj instanceof Person) { //如果是同一个类型,则进行属性的比较 Person p2 = (Person) obj; Person p1 = this; *//*if (p1.name.equals(p2.name) && p1.age == p2.age) { return true; } else { return false; }*//* return p1.name.equals(p2.name) && p1.age == p2.age; } else { return false; } }*/ @Override public boolean equals(Object o) { if (o == null || this.getClass() != o.getClass()) return false; Person person = (Person) o; return age == person.age && Objects.equals(name, person.name); } }