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