Java Object類


預設情況下,Object類是java中所有類的父類別。 換句話說,它是java的頂級類。

如果想參照你不知道的型別的物件,使用Object類是沒有錯的。請注意,父類別參照變數可以參照子類物件,稱為上轉換。

下面舉一個例子,有一個getObject()方法返回一個物件,但它可以是任何型別,如:EmployeeStudent等這樣的類,我們可以使用Object類參照來參照該物件。 例如:

Object obj=getObject();//we don't know what object will be returned from this method

Object類為所有物件提供了一些常見的行為,如物件可以進行比較,物件可以克隆,物件可以通知等。

Object類的方法

Object類提供了許多方法。 它們如下:

方法 描述
public final Class getClass() 返回此物件的Class類物件。 Class類可以進一步用於獲取此類的後設資料。
public int hashCode() 返回此物件的雜湊碼值
public boolean equals(Object obj) 將給定物件與此物件進行比較。
protected Object clone() throws CloneNotSupportedException 建立並返回此物件的精確副本(克隆)。
public String toString() 返回此物件的字串表示形式。
public final void notify() 喚醒單執行緒,等待此物件的監視器。
public final void notifyAll() 喚醒所有執行緒,等待此物件的監視器。
public final void wait(long timeout)throws InterruptedException 導致當前執行緒等待指定的毫秒,直到另一個執行緒通知(呼叫notify()notifyAll()方法)。
public final void wait(long timeout,int nanos)throws InterruptedException 導致當前執行緒等待指定的毫秒和納秒,直到另一個執行緒通知(呼叫notify()notifyAll()方法)。
public final void wait()throws InterruptedException 導致當前執行緒等待,直到另一個執行緒通知(呼叫notify()notifyAll()方法)。
protected void finalize()throws Throwable 在物件被垃圾收集之前由垃圾收集器呼叫。

我們將在下一章詳細學習這些方法。