day10---Object

M4Y

关注

阅读 11

2022-01-20

java.lang.Object类是所有类的直接或间接父类,处在类的最高层次。一个类在声明时若不包含关键字extends,系统就会认为该类直接继承Object类。类中包含了所有Java类的公共属性和方法,这些属性和方法在任何类中均可以直接使用。主要方法如下:
(1)public final Class getClass()方法:获取当前对象所属类的信息,返回Class对象。任何对象所属的类都是确定的,故该方法不能被子类重写。通过Class类,程序可以在运行时动态访问类的信息。
(2)public int hashCode()方法:得到用以标志对象的哈希码。默认情况下,该方法将对象在内存中的地址转换为一个int型整数作为返回值。未重写该方法时,任何对象的哈希码都是唯一的。
(3)public boolean equals(Object obj)方法:比较两个对象是否“同一”,即比较两个引用是否指向同一个对象,与==含义相同。该方法经常被重写,以真正实现比较两个对象是否相等。通常情况下,若子类重写equal方法,也必须重写hashCode方法,这主要是为了和集合类结合在一起时能正常工作。官方文档中对hashCode方法有如下约定:如果两个对象根据equals方法是相等的,那么hashCode方法也应该返回一样的值;如果两个对象根据equals方法不相等,并不要求hashCode方法的结果不一样。
(4)protected Object clone()方法:返回当前对象的一个拷贝,该方法通常需要在子类中重新改写才能使用。
(5)public String toString()方法:以字符串形式返回对象相关信息。结果是对象的类名通过@字符与对象的哈希码的十六进制形式连接。实际应用中建议改写这个方法,因为它会给代码的调试和跟踪带来便利。
(6)protected void finalize()方法:定义垃圾回收器回收当前对象时所需完成的清理工作。

精彩评论(0)

0 0 举报