Java Object toString方法原理解析
在Java中,所有的對(duì)象都是繼承自O(shè)bject,自然繼承了toString方法,在當(dāng)使用System,out.println()里面為一個(gè)對(duì)象的引用時(shí),自動(dòng)調(diào)用toString方法將對(duì)象打印出來(lái)。如果重寫(xiě)了tostring方法則調(diào)用重寫(xiě)的toString 方法。
先看下面一段代碼
public class ToStringTest { static int i = 1; public static void main(String[] args) { System.out.println('love '+new ToStringTest()); ToStringTest a = new ToStringTest(); a.i++; System.out.println('me '+a.i); }public String toString(){ System.out.print('I '); return 'java ';}}
運(yùn)行結(jié)果:
I love java me 2
對(duì)代碼剖析:
首先聲明了一個(gè)靜態(tài)變量i,,static修飾的成員或代碼塊在類(lèi)加載的時(shí)候會(huì)進(jìn)行內(nèi)存申請(qǐng),接著進(jìn)入主方法main中,在第一句輸出語(yǔ)句中,里面用new了此類(lèi)對(duì)象,當(dāng)執(zhí)行該代碼的時(shí)候,先會(huì)創(chuàng)建本類(lèi)的對(duì)象,調(diào)用下面重寫(xiě)的tostring方法,輸出I,返回java,再進(jìn)行main方法中第一句話(huà)的打印輸出,拼接得到I love java。
這個(gè)me2 的輸出,是static的定理,類(lèi)加載概念, static修飾的類(lèi),一般的一個(gè)類(lèi)
只發(fā)生一次類(lèi)加載。輸出m2。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 詳解瀏覽器的緩存機(jī)制2. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))3. asp批量添加修改刪除操作示例代碼4. jsp EL表達(dá)式詳解5. HTML5 Canvas繪制圖形從入門(mén)到精通6. css代碼優(yōu)化的12個(gè)技巧7. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)8. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法9. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器10. 爬取今日頭條Ajax請(qǐng)求
