zoukankan      html  css  js  c++  java
  • 重写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+"
    "+"student1.equals(student3)为"+a2);
        }
    }

    测试运行结果:

     

  • 相关阅读:
    ${}和#{}的区别,使用场景
    Mysql 面试高频题:innodb,myisam(待更)
    Python 基础
    Python 基础
    python之input(), raw_input()
    Python之回调魔法
    python之setattr,getattr,hasattr
    python之类私有成员
    python之函数式编程
    python之类定义
  • 原文地址:https://www.cnblogs.com/Dean-0/p/11176022.html
Copyright © 2011-2022 走看看