課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
為什么創(chuàng)建類對象hello2 會再執(zhí)行一次 main方法上面的 那些語句? ?求大家點贊頂一下 ,大神給個回復(fù)呀 TAT
2016-07-08
源自:Java入門第二季 升級版 8-10
正在回答
你說的上面那些語句是構(gòu)造函數(shù)、初始化塊嗎?在新建對象時候,都會調(diào)用類的構(gòu)造函數(shù)、初始化塊,對剛生成的對象hello2進行初始化的。這和原本你創(chuàng)建過其他對象無關(guān)。但是如果是靜態(tài)的初始化塊,只會在類加載時候被執(zhí)行一次。可以看看JAVA入門第二季中的---Java 中的 static 使用之靜態(tài)初始化塊這一部分內(nèi)容。
HelloWorld hello2=new HelloWorld();代碼做了以下事情:
1、右邊的“new HelloWorld”,是以HelloWorld類為模板,在堆空間里創(chuàng)建一個HelloWorld類對象(也簡稱為HelloWorld對象)。?
2、末尾的()意味著,在對象創(chuàng)建后,立即調(diào)用HelloWorld類的構(gòu)造函數(shù),對剛生成的對象進行初始化。構(gòu)造函數(shù)是肯定有的。如果沒創(chuàng)建,Java會補上一個默認(rèn)的無參構(gòu)造函數(shù)。
3、左邊的“HelloWorld hello2”創(chuàng)建了一個HelloWorld 類引用變量。
4、“=”操作符使對象引用指向剛創(chuàng)建的那個HelloWorld對象。
金乘三 提問者
葫蘆娃3402926 回復(fù) 金乘三 提問者
因為再一次對象實例化,來調(diào)用上面的語句,故再執(zhí)行一次。
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
2 回答再次創(chuàng)建對象hello2
1 回答為什么再次創(chuàng)建對象hello2時會再次執(zhí)行構(gòu)造方法和初始化快?
3 回答為什么再創(chuàng)建類的對象hello2,構(gòu)造方法和初始化塊有被執(zhí)行一次? 不懂哎
3 回答類的對象一旦被創(chuàng)建,程序就被執(zhí)行?
2 回答對象創(chuàng)建時,類就會被執(zhí)行?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-07-08
你說的上面那些語句是構(gòu)造函數(shù)、初始化塊嗎?在新建對象時候,都會調(diào)用類的構(gòu)造函數(shù)、初始化塊,對剛生成的對象hello2進行初始化的。這和原本你創(chuàng)建過其他對象無關(guān)。但是如果是靜態(tài)的初始化塊,只會在類加載時候被執(zhí)行一次。可以看看JAVA入門第二季中的---Java 中的 static 使用之靜態(tài)初始化塊這一部分內(nèi)容。
HelloWorld hello2=new HelloWorld();代碼做了以下事情:
1、右邊的“new HelloWorld”,是以HelloWorld類為模板,在堆空間里創(chuàng)建一個HelloWorld類對象(也簡稱為HelloWorld對象)。?
2、末尾的()意味著,在對象創(chuàng)建后,立即調(diào)用HelloWorld類的構(gòu)造函數(shù),對剛生成的對象進行初始化。構(gòu)造函數(shù)是肯定有的。如果沒創(chuàng)建,Java會補上一個默認(rèn)的無參構(gòu)造函數(shù)。
3、左邊的“HelloWorld hello2”創(chuàng)建了一個HelloWorld 類引用變量。
4、“=”操作符使對象引用指向剛創(chuàng)建的那個HelloWorld對象。
2016-07-08
因為再一次對象實例化,來調(diào)用上面的語句,故再執(zhí)行一次。