Java Object類
Java在java.lang
包中有一個Object
類。所有Java類都直接或間接擴展Object
類。所有Java類都是Object
類的子類,Object
類是所有類的超類。Object
類本身沒有超類。Object
類的引用變量可以保存任何類的對象的引用。
以下代碼聲明對象類型的引用變量obj
:
Object obj;
Object
類有九個方法,可以在Java中的所有類中使用。有關 Object
類的所有方法及描述 -
方法名稱
描述
public String toString()
它已經在Object
類中實現了,也可以自定義它。它返回對象的字符串表示形式。通常,它用於調試目的。
public boolean equals(Object obj)
它已經在Object
類中實現,可以自定義它,它用於比較兩個對象的相等性。
public int hashCode()
它已經在Object
類中實現,可以自定義它。它返回對象的哈希碼(整數)值。
protected Object clone() throws CloneNotSupportedException
它不在Object
類中實現,可以通過覆蓋克隆方法來自定義它。它用於創建對象的副本。
protected void finalize() throws Throwable
它不是在Object
類中實現的,可以自定義它。它在對象被銷燬之前被垃圾收集器調用。
public final Class getClass()
它在Object
類中實現,不能自定義它。它返回對對象的Class
對象的引用。
public final void notify()
它在Object
類中實現,不能自定義它。此方法通知對象的等待隊列中的一個線程。
public final void notifyAll()
它在Object
類中實現,不能自定義它。此方法通知對象的等待隊列中的所有線程。
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
類中實現,不能自定義它。使對象的等待隊列中的線程等待不管是否超時。
示例
以下代碼顯示如何重新實現Object
類的toString()
方法。
public class Test {
public String toString() {
return "Here is a string";
}
}
Object類是什麼?
Java中的每個對象都屬於一個類。Object
類的getClass()
方法返回Class
對象的引用。
以下代碼顯示瞭如何獲取Cat
對象的Class
對象的引用:
Cat c = new Cat();
Class catClass = c.getClass();
Class
類是通用的,其形式類型參數是由其對象表示類的名稱。
可以使用泛型重寫上面的語句。如下語句所示 -
Class<Cat> catClass = c.getClass();