重寫equals()方法


需求說明:

重寫比較貴規則,判斷兩名學員(Student)是否為同一對象

1、Student相關屬性

  id(學號)、name(姓名)、age(年齡)

  如果兩名學員的學號以及姓名相同,則為同一對象

學生類:

public class Students { private String name; private int id; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Students() {} public Students(String name, int id, int age) { super(); this.name = name; this.id = id; this.age = age; } public boolean equals(Object ob) { //自反性
        if(this==ob){ return true; } //instanceof比較判斷是否是同一類或者子父類關系
        if(! (ob instanceof Students)){ return false; } //判斷是同一類或者子父類關系,再將Object類型強轉為Students
        Students ob1 = (Students)ob; if(this.id == ob1.id && this.name.equals(ob1.name)) { return true; }else { return false; } } }

測試類:

public class Text01 { public static void main(String[] args) { Students student1 = new Students("張三",01,18); Students student2 = new Students("李四",02,17); Students student3 = new Students("張三",01,17); boolean a1 = student1.equals(student2); boolean a2 = student1.equals(student3); System.out.println("student1.equals(student2)為"+a1+"\n"+"student1.equals(student3)為"+a2); } }

測試運行結果:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM