預設情況下,Object
類是java中所有類的父類別。 換句話說,它是java的頂級類。
如果想參照你不知道的型別的物件,使用Object
類是沒有錯的。請注意,父類別參照變數可以參照子類物件,稱為上轉換。
下面舉一個例子,有一個getObject()
方法返回一個物件,但它可以是任何型別,如:Employee
,Student
等這樣的類,我們可以使用Object
類參照來參照該物件。 例如:
Object obj=getObject();//we don't know what object will be returned from this method
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 |
在物件被垃圾收集之前由垃圾收集器呼叫。 |
我們將在下一章詳細學習這些方法。