Java-面向对象_Object类的equals方法

Object提供的equals方法:

public boolean equals(Object obj) {
        return (this == obj);
    }

子类:

//重写object的equals方法
    public boolean equals(Object obj) {
        //要把obj的类型转换为当前类的类型
        Phone other = (Phone)obj;
        //this指的是当前调用
        if(this.getName()==other.getName()&&this.getPrice()==other.getPrice()&&this.getYear()==other.getYear()) {
            return true;
        }
        return false;
    }

测试类:

 

public class Test {

    public static void main(String[] args) {
        
        //创建Phone类的对象:
        Phone phone = new Phone("华为P40",5200,2020);
        Phone ps = new Phone("华为P40",5200,2020);
        //比较两个对象:P1和P2对象:
        //==的作用:比较左右两侧的值是相等,返回true,要么不相等返回false
        
        System.out.println(phone==ps);
        //对于引用数据类型来说,比较的是地址值是否相等
        
        //Object类提供了一个方法:作用:比较对象具体内容是否相等。
        boolean flag = phone.equals(ps);//点进源码发现:底层依旧比较的是==,比较的还是地址值。
        System.out.println(flag);
        
        
    }

}

运行:

 

 

总结:

equals作用:这个方法提供对对象的内容是否相等的一个比较方法,对象的内容指的就是属性。

父类Object提供的equals就是比较==地址,没有实际的意义,我们一般不会直接使用父类提供的方法。

而是在子类中对这个方法重写

posted @ 2021-03-01 22:48  别看我看路  阅读(76)  评论(0编辑  收藏  举报