Object类中的equals方法比较的是内存地址,例:(Java中所有类默认继承Object类)
package com.xiao.equals;
/**
* @author 笑笑
* @Date 2018年4月12日下午10:16:09
*
*/
public class Phone {
private String name;
private double price;
//空参构造
public Phone(){
}
//有参构造
public Phone(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
package com.xiao.equals;
/**
* @author 笑笑
* @Date 2018年4月12日下午10:18:34
*
*/
public class Test {
public static void main(String[] args) {
//Phone默认继承Object类,equals方法属于Object类
Phone p1 = new Phone("大哥大",999.0);
Phone p2 = new Phone("大哥大",999.0);
//使用Phone对象引用p1调用其父类的equals方法,来与p2比较; 返回的是布尔值
//两个对象的内存地址相等,返回true,不等,返回false
boolean b = p1.equals(p2);
//打印结果为fasle
System.out.println(b);
}
}
从测试类中可以看出,p1与p2虽然都是Phone的对象引用,但他们的内存地址不同,比较的结果为fasle
结论:Object类中的equals方法比较的是两个对象的内存地址,对象之间比较内存地址一般是没有实际意义的,
所以我们一般都会重写equals方法,我会在下一篇博客中举例.