Java之toString方法
在Java中所有的類都有一個共同的父類Object(默認繼承,不用加extends關鍵字),toString方法就是Object類的一個方法,用來返回該對象的字符串表示形式(個人總結:需要把該類轉換成String類型的時候就會調用該方法)
父類Object中的toString()方法
可以看到該方法返回的是"類名@hashCode值"形式的字符串
但這並不是我們所想要的結果,我們希望這個方法返回的是該類的所有屬性拼接的字符串,Object的toString方法已經不夠用了,因此,我們需要重寫該方法
既然已經重寫好了該方法,那該方法是什麽時候被調用的呢?
我們經常使用System.out.println()方法來打印一個基本類型的變量或引用變量,我們根據源代碼來查看是如何運行的:
System.out.println()通過標準輸出流對象調用println()方法
該方法是用於打印基本類型變量或引用變量,我們在看看prinln()方法是如何實現的?
該方法被重載了,基本類型的參數直接打印出該值,我們主要關註引用類型參數是如何實現
String.valueOf()方法用於返回Object參數的字符串表示形式,將該值用String類型的變量s接收,並打印出來,我們在看看valueOf()方法是怎麽實現的
若該引用變量不是指向空引用,則調用該引用變量所指向的對象的toString方法
由此,我們可以判斷,當System.out.println()中的參數類型是基本類型參數時,直接打印,若是引用類型時,調用該引用類型所指向的對象的toString方法,如果該子類對象不重寫toString方法,則打印的是"類名@hashCode值"形式的字符串,通常建議重寫toString方法
Java之toString方法