public boolean equals(Object obj){
return (this == obj);
}
原始equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等)
== 比较是判断两个对象的值是否相等(保存的值相等)
在Object类中的equals方法中,默认采用的是==判断两个java对象的内存地址是否相等,
而我们应该判断的是两个java对选哪个的内容是否相等,所以老祖宗的equals方法不够用
因此我们需要对equals进行重写
代码演示:
演示局部变量之间用== 进行判断的时候结果是true
演示实例变量的对象引用的时候用== 进行判断的时候结果是false
/**
* @author LBJ
* @version V1.0
* @Package PACKAGE_NAME
* @date 2021/1/28 17:38
* @Copyright 公司
*/
/*
*/
public class Test01{
public static void main(String[] args) {
int a=100;
int b=100;
System.out.println(a == b);
MyTime myTime1 = new MyTime(2021,2,6);
MyTime myTime2 = new MyTime(2021,2,6);
System.out.println(myTime1 == myTime2);
}
}
class MyTime{
int year;
int month;
int day;
public MyTime(){
}
public MyTime(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
public String toString(){
return this.year+"年"+this.month+"月"+this.day+"日";
}
}
演示结果:
a和b是局部变量,==判断的是里面的值是否相等
MyTime myTime1和MyTime myTime2里面保存的是对象的引用,也就是说是内存地址,这两个实例化后是不同的内存地址,用==是比较不出来的</