1. 程式人生 > >深入了解toString方法

深入了解toString方法

java

原來在剛開始學習Java的時候非常好奇為什麽直接打印對象的話,會出現對象名和一串不知所雲的哈希碼,後來在學習中不斷深入學習,終於醍醐灌頂到了toSting方法的原理。

學習繼承之後,滲透一些高級的部分發現,所有創造出來的類都是繼承自Object類,而toString方法是在Object類裏定義的,實際上打印對象的時候就默認調用了這個方法。Java只能用引用變量引用,hashcode存儲的是當前變量引用的對象的地址,只是一個相關的數值代表內存地址,但這不是真正的內存地址,這是虛擬機為了安全實施的。

當時學習的時候只是知道那是一串數字,現在融會貫通的學習終於知道來歷了。在JDK的安裝路徑下,src.zip是全部的Java源程序,找到Object類的toString方法,它是這樣定義的,得到類對象和這個類的類名,[email protected]

/* */

 public String toString() {   
    return getClass().getName() +"@" + Integer.toHexString(hashCode());   
    }


因為即使你沒有表達出來 類名 extends Object,但是所用的類繼承自Object,在你沒有覆寫toString方法打印對象的時候就自動調用了默認的tostring方法,自然答案就出來了。要想打印對象,最好的方式就是按照你的想法去覆寫toString方法。


深入了解toString方法