Java Object toString方法原理解析
在Java中,所有的對(duì)象都是繼承自O(shè)bject,自然繼承了toString方法,在當(dāng)使用System,out.println()里面為一個(gè)對(duì)象的引用時(shí),自動(dòng)調(diào)用toString方法將對(duì)象打印出來。如果重寫了tostring方法則調(diào)用重寫的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修飾的成員或代碼塊在類加載的時(shí)候會(huì)進(jìn)行內(nèi)存申請(qǐng),接著進(jìn)入主方法main中,在第一句輸出語句中,里面用new了此類對(duì)象,當(dāng)執(zhí)行該代碼的時(shí)候,先會(huì)創(chuàng)建本類的對(duì)象,調(diào)用下面重寫的tostring方法,輸出I,返回java,再進(jìn)行main方法中第一句話的打印輸出,拼接得到I love java。
這個(gè)me2 的輸出,是static的定理,類加載概念, static修飾的類,一般的一個(gè)類
只發(fā)生一次類加載。輸出m2。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:

網(wǎng)公網(wǎng)安備