詳解每個類中toString()方法
在我們定義一個類的時候都會建立一個String 型別的toString()方法那麼這個方法真正的作用及原理,為什麼在輸出類變數的時候會輸出toString()的返回值
1我們定義的類預設的父類是Object型別,請看下面的原始碼
public void println(Object x)
{
String s = String.valueOf(x);
synchronized (this)
{
print(s);
newLine();
}
}
詳解:當我們把一個有指向物件的類變數給Object型別的變數,因為Object是父類變數所以x指向子類中擁有父類的方法,(多型方法)
2下面請看valueOf(x)方法的原始碼
public static String valueOf(Object obj)
{
return (obj == null) ? "null" : obj.toString();
}
詳解:當我們把x給obj的時候obj會得x所指向的物件,並判斷當前所指向的物件是否為空,如果不為空將返回當前物件的toString()型別,也就是子類中的toString 型別
3.下面我們看以下toString()方法的原始碼
public String toString()
{
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
//toString()方法是Object類中的一個方法,返回的是ss.連結串列@154283a
//當前類的名字和@還有一串字串,至於字串的產生原因這裡的就不敘述了因為我們主要說的事toString();
4.總上所述,在一個類中定義一個toString的方法實際上為了不用通過類變數呼叫方法來達到顯示值。