Object类--equals方法

equals方法

1、比较的是对象引用的是否指向同一块内存地址

    public static void main(String[] args) {
        HuaWei huawei=new HuaWei();
        huawei.cpu=1;           
        HuaWei huawei1=new HuaWei();
        huawei.cpu=1;
        if(huawei.equals(huawei1)){
            System.out.println("两个对象是相同的!");
        }else{
            System.out.println("两个对象是不相同的!");
        }
    }

结果:

两个对象是不相同的!

2、作用是比较两者的区别,作用类似于“==”,默认情况下equals比较的是内存地址,而在一般情况我们需要比较的是两个对象的值是否一致,那么如何解决这个问题:当父类方法无法满足我们的需要时,此时就需要重写这个方法。

    public boolean equals(Object obj) {
        if (this == obj)    //判断两个引用的地址是否相同
            return true;    
        if (obj == null)    //判断另外一个对象是否是空值
            return false;
        if (getClass() != obj.getClass())//getClass()是类对象,
            return false;
        HuaWei other = (HuaWei) obj;
        if (cpu != other.cpu)  //两个对象的属性值是否不相同
            return false;
        if (screen != other.screen)
            return false;
        if (width != other.width)
            return false;
        return true;
    }
posted @ 2016-11-12 23:08  滕鹏飞  阅读(123)  评论(0编辑  收藏  举报