Java-面向对象_Object类的equals(2)
instanceof运算符:
子类:
public boolean equals(Object obj) { /* * instanceof运算符: * a instanceof b: * 判断a对象是否是b这个类的实例,如果是 返回true 如果不是返回false */ if(obj instanceof Phone) { //要把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); Cat cat = new Cat(); System.out.println(phone.equals(cat)); } }
运行: