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就是比较==地址,没有实际的意义,我们一般不会直接使用父类提供的方法。
而是在子类中对这个方法重写