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();