A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

定义一个Worker类属性有name,age,salary;
为Worker类重写equals 方法,当姓名、年龄、工资全部相等时候才返回true
这个该如何重写?

2 个回复

倒序浏览
class Worker{
        private String name;
        private int age;
        private float salary;
       
        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getAge() {
                return age;
        }

        public void setAge(int age) {
                this.age = age;
        }

        public float getSalary() {
                return salary;
        }

        public void setSalary(float salary) {
                this.salary = salary;
        }

        @Override
        public boolean equals(Object obj) {
                // TODO Auto-generated method stub
                if(!obj.getClass().isInstance(Worker.class))
                        return false;
                else
                {
                        Worker temp = (Worker)obj;
                        boolean b1 = this.getName().equals(temp.getName());
                        boolean b2 = (this.getAge()==temp.getAge());
                        boolean b3 = (this.getSalary()==temp.getSalary());
                        return b1&&b2&&b3;
                       
                }
        }
       
}
回复 使用道具 举报
可以使用快捷键Alt+s键找到Generate.....equals(),然后把hashCode()方法去掉就可以直接重写,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马