记录自己学equals区别
package com.zwy.object_; public class EqualsExercise01 { public static void main(String[] args) { Person person1 = new Person("Jack", 10, '男'); Person person2 = new Person("Jack", 10, '男'); System.out.println(person1.equals(person2));//为假 要求两个person对象的各个属性值都一样,则返回true 反之false;与要求不符 } } class Person{//extends Object此时继承的是object 此时调用的是父类object的方法,object的equals方法只判断是否为同一个对象,子类没有重写方法 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 boolean equals(Object obj){ //判断如果比较的两个对象是同一个对象,则返回true if(this == obj){ return true; } if(obj instanceof Person){ //是person我们才比较 //进行 向下转型,因为我需要得到object 的各个属性 Person p = (Person)obj; return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender; } return false; }
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; } }