zoukankan      html  css  js  c++  java
  • Java重写equals()方法

    java比较两个对象是否相等时,equals()方法判断的是引用,即地址是否相同,而常常我们想要判断的是对象里的值是否相等,此时可以重写equals()方法

    设定一个类User.java(重写equals()方法)

    /**
     * 为了方便把属性都设置成public,正式写代码要写成private,再set,get
     */
    public class User {
        public String id;
        public String money;
        //重写equals方法:该写法可以作为一种模板
        public boolean equals(Object obj){
            if(this == obj){ //先判断是否是同一个对象
                return true;
            }
            if(obj == null){ // 如果不是同一对象,接着判断对象是否为空
                return false;
            }
            if(!(obj instanceof User)){ // 接着判断是不是Course类型的对象
                return false;
            }
            User user = (User)obj; // 如果是,进行类型转换
            if(this.money==null){ // 接着判断属性值是否为null
                if(user.money==null){
                    return true;
                }else{
                    return false;
                }
            }else{ // 如果属性值不是null,需要再调用父类中的equals方法,比较值的内容
                if(this.money.equals(user.money)){
                    return true;
                }else{
                    return false;
                }
            }
        }
    
    }

    测试类:UserTest.java

    public class UserTest {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            User user1=new User();
            user1.id="1";
            user1.money="10";
            User user2=new User();
            user2.id="1";
            user2.money="10";
            System.out.println("比较两个对象是否相等结果:"+user1.equals(user2));
        }
    }

    返回结果为true

    若是去掉重写的equals()方法,则返回值为false

    注意:!!!!!其实eclipse中选择source——>Generate HashCode() equals()就可以自动生成重写代码。。。就不用手动写了~

  • 相关阅读:
    TCP 连接状态
    可视化垃圾回收算法
    flume-ng+Kafka+Storm+HDFS 实时系统搭建
    WeX5 IDE 手机移动开发+JAVA +大数据
    云计算高级运维工程师
    CentOS 5.8 上安装 systemtap-2.6
    SYSTEMTAP -ORACLE
    Apple激活日期查询
    Div 浮动到另一个div之上
    Python模块常用的几种安装方式
  • 原文地址:https://www.cnblogs.com/zhouerba/p/7365568.html
Copyright © 2011-2022 走看看