默認(rèn)情況下,Object
類是java中所有類的父類。 換句話說,它是java的頂級類。
如果想引用你不知道的類型的對象,使用Object
類是沒有錯的。請注意,父類引用變量可以引用子類對象,稱為上轉(zhuǎn)換。
下面舉一個例子,有一個getObject()
方法返回一個對象,但它可以是任何類型,如:Employee
,Student
等這樣的類,我們可以使用Object
類引用來引用該對象。 例如:
Object obj=getObject();//we don't know what object will be returned from this method
Object
類為所有對象提供了一些常見的行為,如對象可以進(jìn)行比較,對象可以克隆,對象可以通知等。
Object
類提供了許多方法。 它們?nèi)缦拢?/p>
方法 | 描述 |
---|---|
public final Class getClass() |
返回此對象的Class 類對象。 Class 類可以進(jìn)一步用于獲取此類的元數(shù)據(jù)。 |
public int hashCode() |
返回此對象的哈希碼值 |
public boolean equals(Object obj) |
將給定對象與此對象進(jìn)行比較。 |
protected Object clone() throws CloneNotSupportedException |
創(chuàng)建并返回此對象的精確副本(克隆)。 |
public String toString() |
返回此對象的字符串表示形式。 |
public final void notify() |
喚醒單線程,等待此對象的監(jiān)視器。 |
public final void notifyAll() |
喚醒所有線程,等待此對象的監(jiān)視器。 |
public final void wait(long timeout)throws InterruptedException |
導(dǎo)致當(dāng)前線程等待指定的毫秒,直到另一個線程通知(調(diào)用notify() 或notifyAll() 方法)。 |
public final void wait(long timeout,int nanos)throws InterruptedException |
導(dǎo)致當(dāng)前線程等待指定的毫秒和納秒,直到另一個線程通知(調(diào)用notify() 或notifyAll() 方法)。 |
public final void wait()throws InterruptedException |
導(dǎo)致當(dāng)前線程等待,直到另一個線程通知(調(diào)用notify() 或notifyAll() 方法)。 |
protected void finalize()throws Throwable |
在對象被垃圾收集之前由垃圾收集器調(diào)用。 |
我們將在下一章詳細(xì)學(xué)習(xí)這些方法。