Fork me on GitHub

根父类:java.lang.Object

Posted on 2019-09-03 18:22  攀一座山  阅读(353)  评论(0编辑  收藏  举报

1、根父类

(1)Object类型是所有引用数据类型的超类,包括数组类型

如果一个类没有显式的声明它的父类,那么它的父类就是Object。

(2)Object类中的方法,会继承到所有类型的对象中,包括数组对象。

即所有对象都可以调用Object类中声明的方法

(3)Object类型变量或数组可以接收和存储所有类型的对象。

 

2、它的常用方法们

(1)public String toString():返回对象的详细信息,建议子类重写。

如果不重写,返回的是“类型名@hashCode值"。

当我们一个对象被打印或与字符串拼接时,就自动会调用这个对象的toString()

 

(2)public Class getClasse():获取这个对象的“运行时”类型

 

(3)public void finalize():当对象被GC回收之前,由垃圾回收器调用。一般资源对象才会重写这个方法,用于彻底释放资源。可能在finalize方法使得对象“复活”,但是复活后的对象,下次就不会再调用finalize方法。

 

(4)public int hashCode():返回对象的hash码。

理想状态下:不同的对象的hash码的唯一。

现实状态下:不同的对象可能拥有相同的hashCode值。例如:"Aa" 和 "BB"

 

如果重写hashCode方法,那么要遵循几个原则:

A:如果参与hashCode值计算的属性值没有变,那么这个对象的hashCode值就不变。

B:相同对象(即调用equals返回true的两个对象)的hashCode值一定是一样

C:不同对象(即调用equals返回false的两个对象)的hashCode值可以相同也可以不同

 

(5)public boolean equlas(Object obj):用于判断两个对象是否相等

如果子类没有重写equals方法,那么和==是一样,比较的是对象的内存地址。

我们可以选择重写,重写要遵循几个原则:

A:一定和hashCode()一起重写,并且选择的属性一定是一样的

B:遵循几个特性:

自反性、传递性、对称性、一致性、非空对象与空对象比较一定是false

Copyright © 2024 攀一座山
Powered by .NET 9.0 on Kubernetes