2 ljw2356635 ljw2356635 于 2016.02.20 20:01 提问

编写Emp(eno,ename,esex)类,要求重写equals方法结果为true

编写Emp(eno,ename,esex)类,要求重写equals方法,编写测试类Test,实现当eno和esex相同时,两对象比较后的结果为true

1个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.20 20:40
已采纳

重写equals方法,判断两个方面,如果是同一个对象,返回true,如果是不同对象,并且这两个对象的这三个属性都相同的话,就可以返回true,其他情况就是不相等的。实例代码如下:

 public class Emp {
    private String eno;
    private String ename;
    private int esex;

    public Emp(String eno,String ename,int esex){
        this.eno = eno;
        this.ename = ename;
        this.esex = esex;
    }


    public String getEno() {
        return eno;
    }


    public String getEname() {
        return ename;
    }


    public int getEsex() {
        return esex;
    }


    @Override
    public boolean equals(Object obj) {
        if(this==obj){
            return true;
        }

        if(!(obj instanceof Emp)){
            return false;
        }

        Emp compare = (Emp)obj;
        return this.eno.equals(compare.getEno())
                &&this.ename.equals(compare.getEname())
                &&this.esex==compare.getEsex();
    }

    public static void main(String[] args) {
        Emp p1 = new Emp("01","wang",1);
        Emp p2 = new Emp("01","wang",1);
        System.out.println(p1.equals(p2));
    }
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数据库练习二答案
数据库练习题二选择1 A 2 B 3 B 4 A 5 B6 C 7 B 8 D填空1 数据库管理  2  rollback3 3           4  混合模式5 查询的数据来源设计一设有关系EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号、姓名、工资和所在部门号,以及关系DEPT(DNO,DNAME,MANAGER),其中各属性含义依次为部门号、部门名称、部门
集合的操作(员工类 第三篇)
/** * 要求用户输入若干员工信息,格式为: * name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;.... * 例如: * 张三,25,男,5000,2006-02-15;李四,26,女,6000,2007-12-24;... * 然后将每个员工信息解析成Emp对象。并存入到一个List集合中。 * 并对
OCP-1Z0-053-V12.02-609题
609.Examine the following commands and their output: SQL> SELECT ename, sal FROM emp WHERE ename='JAMES'; ENAME SAL JAMES 1050 SQL> UPDATE emp SET sal=sal+sal*1.2 WHERE ename='JAMES'; 1 row update
对于自定义类,重写equals方法和hashCode方法的技巧
参考:http://blog.csdn.net/fenglibing/article/details/8905007 对于自定义的类,如果要比较两个对象是否相同,就需要重写equals方法。举一个例子进行说明: 先自定义一个类,包含两个属性:class Person{ private String name; int id; public Person(){ } publi
Object类学习之equals方法重写
我们知道java中所有的类都有equals方法,因为Object类拥有equals方法 object对象中的 public boolean equals(Object obj),指示其他某个对象是否与此对象“相等”。这里的相等指的是比较的两方指向同一个对象 对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象(就是同一块内存地址),此方法才返回 true; 但是这一性质并
java重写equals方法需要注意的几点
尽管object是一个具体类,涉及它就是为了扩展它,它所有的非final方法(equals,hashCode,toString,clone和finalize)都有一些通用的规定,因为它们被设计就是用来覆盖(override)的。任何一个类,它在覆盖这些方法的时候,都有责任遵守这些约定。 本篇文章主要讲解覆盖equals方法需要遵守的规定 覆盖equals方法看起来很简单,但是有许多覆盖
套路重写Java的equals函数
String为什么要重写equals函数?      大多数学生都是从C++学起的,大家习惯用C++的==来比较两个string是否相等。为什么Java就要重写equals函数来比较两个String类是否相等呢?(叹气)其实是因为C++的string已经重载了操作符==(如果你还记得重写friendly operation==来比较两个类相等);但是在Java中操作符==比较的是对象指向的虚拟地
Java重写equals方法实现去重
我们经常会遇到一些业务,要对数据进行去重,我们可能首先想到的就是重写equals方法,但是结果却不尽人意,这是为啥呢?其实还需要重写hashCode方法,因为光重写equals方法是不够的 public class Test { private int id; private String name; public int getId() { return
关于重写equals方法,hashcode方法,toString方法 ,compareto()方法
关于重写equals方法,hashcode方法,toString方法 ,compareto()方法 总结: toString说白了,就是为了显示用的 Compareto 方法为了比较用的 只有用到Hashtable、HashMap、HashSet、LinkedHashMap等时才要注意hashcode,其他地方hashcode无用。 Hashcode: 为什么要重写hashCode方法?
写一个类Student,包含三个属性学号id,姓名name和年龄age;要求覆盖基类Object中的ToString()方法和Equals()方法,使得直接输出Student对象时输出的是对象的id,name和age信息;并且当两个对象的学号相同时认为它们相等;
写一个类Student,包含三个属性学号id,姓名name和年龄age;要求覆盖基类Object中的ToString()方法和Equals()方法,使得直接输出Student对象时输出的是对象的id,name和age信息;并且当两个对象的学号相同时认为它们相等; 然后写一个主方法测试以上定义。