java object 类 equals方法,tostring方法,hashcode方法
Object :java最底层的一个类,所有的类都会默认去继承
Object,我们写的所有的类都是Object的子类
会继承Object这个类所有的属性和所有的方法
1) Object中有3个非常重要的方法
hashcode(), toString(), equals(),sun都是建议
我们写自己的类的时候,最好都重写上述3个方法
2) toString():描述对象的方法,用一个文本信息来描述当前
对象 ,一般是把属性显示出来.
a) Object中toString的结果让我们很"崩溃"
默认调用toString方法的时候,返回的结果:
包名.类名@hashcode;
必须重写该方法
b) 当输出对象的名字的时候,系统就会默认去调用
toString()方法
3) "=="与equals()
a) "==" : 比较的是基本数据类型的对象,是否相等
eg :
Person person1 = new Person();
Person person2 = new Person();
person1和person2中保存的地址值,必然不同,不能
使用"=="来判断两个引用类型是否相等
b) "equals":是sun专门用来判断两个对象是否相等
方法
4) equals():
a) equals()为什么需要重写?
Object这个根类中equals()等价于“==” ,必须重写
b)自反性:对于任何非空的引用值,自己跟自己比较永远
都为true
eg x.equals(x)---->true
x == other
c)对称性:对于任何非空的引用值:
x.equals(y)如果返回值是true,则y.equals(x)
返回值一定是true
d)传递性:对于任何非空的引用值:
x.equals(y)返回值是true,y.equals(z)返回值也是
true,x.equals(z)必然是true
e)一致性:对于任何非空的引用值:
x.equals(y)如果一次比较的结果是true的话,则不对
x和y做任何的修改,无论比较多少次,则结果都是true
f)任何对象跟null比较,永远都是false
x.equals(null)--->false
5) hashCode():
a)hashCode:创建对象在堆内存中的地址值经过一系列
非常复杂的算法转化而来的一组数字,对开发来说无意义
b)如果两个对象相等话,
第1个条件:equals返回的结果必须是true
第2个条件:必须要有相等的hashCode
c)如果两个对象不相等,则hashCode值一定不等
d)判断对象是否相等的时候,必须要重写equals和
hashCode
6) instanceof:判断一个对象是否是某个类的对象
格式: 对象 instanceof 类名
如果是返回true,否则false
if(obj instanceof Car){
Car car1 = (Car) obj;

浙公网安备 33010602011771号