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