Java中Object類的常用方法

scbiaosdo發表於2018-04-24

Object類是什麼?

類層次結構的根類.每個類都使用 Object 作為超類(父類)。

getClass

public final Class getClass()

以Class形式表示的當前類

返回:表示此物件執行時類的 Class 物件。

Class類中有一個方法:public String getName()

以 String 的形式返回此Class 物件所表示的實體(類、介面、陣列類、基本型別或 void)名稱。

執行程式:

public class Dc {
    public static void main(String[] args) {
        Rmb a = new Rmb();
        Class c = a.getClass();
        System.out.println(c);
        System.out.println(c.getName());
        System.out.println(a.getClass().getName());
    }

}

執行結果:

class org.westos.Rmb

org.westos.Rmb

org.westos.Rmb


hashCode

public int hashCode()

返回該物件的雜湊碼值

雜湊碼值:一般是通過將該物件的內部地址轉換成一個整數來實現的。

equals

public boolean equals(Object obj)

指示其他某個物件是否與此物件“相等”。

==對於引用變數來說是進行地址值的比較

按照正常情況:equals方法底層實際執行的兩個物件在==進行比較(建議對此方法重寫)

注意:當此方法被重寫時,通常有必要重寫 hashCode 方法,以維護 hashCode 方法的常規協定,該協定宣告相等物件必須具有相等的雜湊碼。


toString

public String toString()

直接輸出物件名稱:實際執行了Object中的toString(),輸出的全類名@十六進位制資料

等於:getClass().getName() + '@' + Integer.toHexString(hashCode())

建議所有子類都重寫此方法。

不想讓toString()直接輸出的是一個地址值(物件的地址值),就需要重寫Object中的toSring(),一般情況:自動生成即可    

clone

protected Object clone()

                throws CloneNotSupportedException

建立並返回此物件的一個副本(相當於複製)

Object 類的 clone 方法執行特定的複製操作。首先,如果此物件的類不能實現介面 Cloneable,則會拋CloneNotSupportedException。

注意:所有的陣列都被視為實現介面 Cloneable

finalize

protected void finalize()

                 throws Throwable

這個方法在gc啟動,該物件被回收的時候被呼叫。其實gc可以回收大部分的物件(凡是new出來的物件,gc都能搞定,一般情況下我們又不會用new以外的方式去建立物件),所以一般是不需要程式設計師去實現finalize的。

相關文章