1. 程式人生 > >詳解每個類中toString()方法

詳解每個類中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的方法實際上為了不用通過類變數呼叫方法來達到顯示值。