关于object类中的equals
-
equals方法的源代码:
-
public boolean equals(Object obj){
-
return (this==obj)
-
}
-
-
sun公司设计equals方法的目的是?
- 以后编程的过程当中,都要通过equals方法来判断两个对象是否相等
- equals方法是判断两个对象是否相等的
-
说明:
- 判断两个基本数据类型的数据是否相等直接使用“==”就行
- 判断两个java对象是否相等 ,怎么办?能不能使用“==”???
- 判断对象,使用“==”,则是判断保存的对象内存地址是否相等
- 判断两个java对象是否相等,不能使用“==”,因为“==”比较的是两个对象的内存地址
- 在Object类中的equals方法当中,默认采用的是”==“判断两个java对象是否相等。而”==“判断的是两个java对象的内存地址,我们应该判断的是两个java对象的内容是否相等,所以老祖宗的equals方法不够用。需要子类重写equals.
-
结论
- java中什么类型的数据可以使用“==”判断
- java中基本数据类型比较是否相等,使用==
- java中什么类型的数据需要使用equals判断
- java中所有的引用数据类型统一使用equals方法来判断是否相等
- java中什么类型的数据可以使用“==”判断
-
总结
-
toString()方法
- 以后所有类的toString()方法是需要重写的
- 重写规则:越简单,越明了就好
- System.out.println(引用) 这里会自动调用 “引用”的 toString()方法
- String类是sun写的,tostring方法已经重写了
-
equals()方法
- 所有类的equals方法也需要重写,因为object中的equals方法比较的是两个对象的内存地址,我们应该比较内容,所以需要重写
- 重写规则:自己定,主要看是什么和什么相等时表示两个对象相等
- 基本数据类型比较:==
- 对象和对象比较:调用equals方法
- String类是sun写的,所以string类中的equals方法已经重写了
- 以后判断两个字符串是否相等,最好不要使用==,要调用字符串对象的equals方法
-