Object类之重写equals方法判断Person类的两个实例对象的属性是否相等
先构造Person类
public class Person {
private String name;
private int age;
private char gender;
public Person(String name, int age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
// 重写Object 的equals方法
@Override
public boolean equals(Object obj) {
//判断,如果比较的两个对象是同一个对象,则直接返回true;
if (this == obj) {
return true;
}
//类型判断
//如果obj的类型是 Person类,才进行接下来的比较
if (obj instanceof Person) {
//对boj 进行 向下转型
//需要的到obj的各个属性或方法
Person person = (Person) obj;
return this.name.equals(person.name) && this.age == person.age
&& this.gender == person.gender;
}
//如果obj类型不是 Person,直接返回false
return false;
}
}
再构造主函数
public class Test {
public static void main(String[] args) {
Person person1 = new Person("tom",15,'男');
Person person2 = new Person("tom",15,'男');
Person person3 = new Person("tom",18,'男');
//要求重写euqals函数,判断两个person的内容是否都相等。
System.out.println(person1.equals(person2));//true
System.out.println(person1.equals(person3));//false
}
}