一、Object类
概念:所有类的超类、基类、父类。
特点:
1.所有的类要么直接继承要么间接继承。
2.所有的对象都可调用Object类中的方法。
3.Object可以作为形式参数:能够接收任意对象(引用数据类型)。
4.Object可以作为返回值类型:能够返回任意对象(引用数据类型)。
二、Object类中的方法
public final Class getClass():得到引用中保存的真实类型。
应用场景:判断两个引用中保存的真实类型是否一致
public int hashCode():返回该对象的哈希码值,根据物理地址换算得来的int整数。
注意:相同地址的对象返回相同哈希值,不同地址的对象返回不同哈希值。
public String toString():返回该对象的字符串表示。组成部分包名+类名+@+当前对象的哈希值转换为16进制使用 字符串进行表示。(掌握)
注意:
1.打印对象名默认调用toString()
2.Object类中的toString()方法调用没有价值,大多数情况在子类中都会进行覆盖。
3.覆盖的原则:返回当前对象的所有属性值。
public boolean equals(Object obj):默认比较地址,覆盖后比较内容。
注意:默认比较两个对象的地址,==也是比较地址,所以equals需要进行覆盖,覆盖的要求:比较对象的内容
三、 覆盖的步骤:
1.obj是否为null
2.两个对象地址是否相同
3.两个对象类型是否相同
4.强转
5.比较两个对象的每一个属性值
四、==和equals的区别?(背)
==:比较基本数据类型比较的是数值是否相同
比较引用数据类型比较的是地址是否相同
equals:只能比较引用类型,默认比较地址
覆盖之后比较内容