第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

怎么理解“通過構(gòu)造方法初始化name” 和 "通過初始化塊初始化sex" 代碼不都是一樣的嗎?


// 構(gòu)造方法

public ?HelloWorld ? ? ?() {?

System.out.println("通過構(gòu)造方法初始化name");

name = "tom";

}

? ??

? ? // 初始化塊

{?

System.out.println("通過初始化塊初始化sex");

sex = "男";

}

? ??

? ? // 靜態(tài)初始化塊

static ? ? {?

System.out.println("通過靜態(tài)初始化塊初始化age");

age = 20;

}

? ??


正在回答

3 回答

說明你對程序的運(yùn)行還不了解,沒有真正理解這個程序。這種情況下,我建議你采用第一季教過的debug方法進(jìn)行調(diào)試,弄清楚程序的執(zhí)行過程。

main方法之前完成的其實(shí)是類的申明,是所有workhorse class(主力類)都要完成的申明工作,前面的內(nèi)容暫時是不工作的(除了靜態(tài)初始化塊)。一般情況下這種類的main方法其實(shí)是用來做測試的,所以我們debug的時候在main的第一條語句設(shè)置breakpoint。

進(jìn)入調(diào)試之后,會發(fā)現(xiàn)console區(qū)域立馬顯示了“通過靜態(tài)初始化塊初始化age”,這說明靜態(tài)初始化塊在類加載的時候就執(zhí)行了,先于對象的構(gòu)造。然后運(yùn)行HelloWorld hello=new HelloWorld();語句就會發(fā)現(xiàn),”通過初始化塊初始化sex““通過構(gòu)造方法初始化name”先后出現(xiàn),這說明先執(zhí)行了初始化塊,再執(zhí)行了構(gòu)造方法。這是因為賦值的完成,必須在對象創(chuàng)建之前完成。就好比,我要去買一個某種屏幕大?。ㄟ@里就是沒有賦值的屬性)的手機(jī),我可以說“因為我想買5吋的手機(jī)(屬性賦值),所以我選擇了這款華為手機(jī)(對象創(chuàng)建)”,但是我不能說“因為我買了這款華為手機(jī)(對象創(chuàng)建),所以這款手機(jī)是5吋屏幕(屬性賦值)”。這個邏輯順序是不對的。

3 回復(fù) 有任何疑惑可以回復(fù)我~

代碼的位置不同。緊挨著構(gòu)造方法名的是構(gòu)造方法,隨后才是普通初始化塊或靜態(tài)初始化塊。他們的執(zhí)行順序不同。

1 回復(fù) 有任何疑惑可以回復(fù)我~

構(gòu)造函數(shù)初始化是在創(chuàng)建對象時初始化對象, 即為對象成員變量賦初始值,總與new運(yùn)算符一起使用在創(chuàng)建對象的語句中。初始化塊的用處是,如果一段初始化處理代碼對所有對象完全相同,且無須接受任何參數(shù),就可以把這段提取到初始化塊中。

2 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

怎么理解“通過構(gòu)造方法初始化name” 和 "通過初始化塊初始化sex" 代碼不都是一樣的嗎?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號