Object是所有類的「爸爸」
- 初步介紹Object
在Java語言中有繼承的概念,但是跟c語言不同,Java的繼承是單繼承,並且當一個類不寫任何繼承關係的時候,他會預設繼承Object,而且就算是你寫了繼承關係,你所繼承的類最終也是要繼承Object,所以才說他是所有類的「爸爸」。
- Object中的方法
- hashCode():將物件在記憶體中的地址經過計算得到一個int型別的整數。
public native int hashCode();
- equals():用來比較兩個物件的內容,在Object中預設效果是==(想知道==和equals()的所有用法請檢視),在這裏比較的是地址,如果想要比較別的可以重寫此方法。
public boolean equals(Object obj) {
return (this == obj);
}
- toString():列印輸出時將物件變成String字串。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
- getClass():獲取物件對應類的類對映(反射技術)
public final native Class<?> getClass();
- wait():執行緒進入掛起等待狀態,存在方法過載。
public final void wait() throws InterruptedException {
wait(0);
}
- notify():執行緒喚醒。
public final native void notify();
- notifyAll():喚醒所有執行緒。
public final native void notifyAll();
- finalize():許可權修飾符是protected,在物件被GC回收時,預設呼叫執行的方法。(注意final、finally、finalize區別,請參見)
protected void finalize() throws Throwable { }
- clone():克隆範例的副本,想用的時候需要實現一個介面
protected native Object clone() throws CloneNotSupportedException;