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";
}
}
Java中的每個物件都屬於一個類。Object
類的getClass()
方法返回Class
物件的參照。
以下程式碼顯示了如何獲取Cat
物件的Class
物件的參照:
Cat c = new Cat();
Class catClass = c.getClass();
Class
類是通用的,其形式型別引數是由其物件表示類的名稱。
可以使用泛型重寫上面的語句。如下語句所示 -
Class<Cat> catClass = c.getClass();