重写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