Java面向?qū)ο笤O計 - Java Object類
Java在java.lang包中有一個Object類。
所有Java類都直接或間接擴展Object類。
所有Java類都是Object類的子類Object類是所有類的超類。
Object類本身沒有超類。
Object類的引用變量可以保存任何類的對象的引用。
以下代碼聲明對象類型的引用變量obj:
Object obj;
方法
Object類有九個方法,可以在Java中的所有類中使用。
- public String toString()
它是實現(xiàn)在Object類中,我們可以自定義它。
它返回對象的字符串表示形式。
通常,它用于調(diào)試目的。 - public boolean equals(Object obj)
它在Object類中實現(xiàn),我們可以自定義它。
它用于比較兩個對象的相等性。 - public int hashCode()
它在Object類中實現(xiàn),我們可以自定義它。
它返回對象的哈希碼(整數(shù))值。 - protected Object clone() throws
CloneNotSupportedException
它不在Object類中實現(xiàn),我們可以通過覆蓋克隆方法來自定義它。
它用于創(chuàng)建對象的副本。 - protected void finalize() throws Throwable
它不是在Object類中實現(xiàn),我們可以自定義它
它在對象被銷毀之前被垃圾收集器調(diào)用。 - public final Class getClass()
它在Object類中實現(xiàn),我們不能自定義它。
它返回對對象的Class對象的引用。 - public final void notify()
它是在Object類中實現(xiàn)的,我們不能自定義它。
此方法通知對象的等待隊列中的一個線程。 - public final void notifyAll()
它是在Object類中實現(xiàn)的,我們不能自定義它。
此方法通知對象的等待隊列中的所有線程。 - public final void wait() throws InterruptedException
public final void wait(long timeout) throws InterruptedException
public final void wait (long timeout, int nanos) throws InterruptedException
它是在Object類中實現(xiàn)的,我們不能自定義它。
使對象的等待隊列中的線程等待,無論是否超時。
例子
以下代碼顯示如何重新實現(xiàn)Object類的toString()方法。
public class Test {
public String toString() {
return "Here is a string";
}
}
什么是對象類?
Java中的每個對象都屬于一個類。
Object類的getClass()方法返回Class對象的引用。
以下代碼顯示了如何獲取Cat對象的Class對象的引用:
Cat c = new Cat();
Class catClass = c.getClass();
Class類是通用的,其形式類型參數(shù)是由其對象表示的類的名稱。
我們可以使用泛型重寫上面的語句。
Class<Cat> catClass = c.getClass();
更多建議: