需求說明:
重寫比較貴規則,判斷兩名學員(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); } }
測試運行結果: