javaSE-day01-Object类的equals方法

This commit is contained in:
2026-05-30 16:05:36 +08:00
parent 890ad81fad
commit b208689e11
2 changed files with 86 additions and 0 deletions

View File

@@ -1,9 +1,19 @@
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{" +
@@ -11,4 +21,38 @@ public class Person {//直接继承自Object
", 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);
}
}