【0712作业】重写equals
1 package student01; 2 /** 3 * 重写equals 4 * 2019-07-13 5 * @author L 6 * 7 */ 8 public class Student { 9 private String name; 10 private int id; 11 private int age; 12 13 public String getName() { 14 return name; 15 } 16 public void setName(String name) { 17 this.name = name; 18 } 19 public int getId() { 20 return id; 21 } 22 public void setId(int id) { 23 this.id = id; 24 } 25 public int getAge() { 26 return age; 27 } 28 public void setAge(int age) { 29 this.age = age; 30 } 31 public Student() {} 32 public Student(String name, int id, int age) { 33 super(); 34 this.name = name; 35 this.id = id; 36 this.age = age; 37 } 38 39 public boolean equals(Object ob) { 40 //自反性 41 if(this==ob){ 42 return true; 43 } 44 //instanceof比较判断是否是同一类或者子父类关系 45 if(! (ob instanceof Student)){ 46 return false; 47 } 48 //判断是同一类或者子父类关系,再将Object类型强转为Student 49 Student ob1 = (Student)ob; 50 if(this.id == ob1.id && this.name.equals(ob1.name)) { 51 return true; 52 }else { 53 return false; 54 } 55 56 57 } 58 59 }
测试
1 package student01; 2 3 public class Main { 4 public static void main(String[] args) { 5 Student student1 = new Student("张三",01,18); 6 Student student2 = new Student("李四",02,17); 7 Student student3 = new Student("张三",01,17); 8 boolean a1 = student1.equals(student2); 9 boolean a2 = student1.equals(student3); 10 System.out.println("student1.equals(student2)为"+a1+"\n"+"student1.equals(student3)为"+a2); 11 } 12 }