課程
/后端開發
/Java
/Java入門第二季 升級版
helloWorld hello2=new HelloWorld()這句話有什么用,為什么還會輸出“通過初始化為變量num2賦值”和“通過構造方法為變量num1賦值”
2018-01-20
源自:Java入門第二季 升級版 8-10
正在回答
新創建一個類的對象,類中的代碼塊和方法都會被執行,但靜態塊只執行一次,所以hello2里面只輸出2個。
helloWorld hello2=new HelloWorld()這句話就是創建了類HelloWorld的一個對象hello2。普通來說,每一次創建類的一個對象,類中的代碼塊和方法都會被調用一次,HelloWorld中有三個初始化代碼塊,普通情況下在創建對象hello2時三種應該都調用一次,但是有一個是靜態的初始代碼塊,這個代碼塊在之前創建對象hello的時候已經分配了空間,也就是已經實例化了。所以在創建對象hello2的時候沒有再執行這個靜態代碼塊。所以只輸出了兩行“通過初始化為變量num2賦值”和“通過構造方法為變量num1賦值”。
F_ake
Erque 回復 F_ake
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
3 回答請問為什么最后HelloWorld hello2=new HelloWorld();會輸出最后2行
4 回答為什么老師敲得代碼執行了hello還會執行hello2?
3 回答為什么最后運行時沒有輸出另外兩個參數?
5 回答為什么會輸出兩遍呢
7 回答提問一下,例題里最后一句HelloWorld hello2=new HelloWorld();這句代碼是什么意思?有什么含義嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-04-16
新創建一個類的對象,類中的代碼塊和方法都會被執行,但靜態塊只執行一次,所以hello2里面只輸出2個。
2018-01-20
helloWorld hello2=new HelloWorld()這句話就是創建了類HelloWorld的一個對象hello2。普通來說,每一次創建類的一個對象,類中的代碼塊和方法都會被調用一次,HelloWorld中有三個初始化代碼塊,普通情況下在創建對象hello2時三種應該都調用一次,但是有一個是靜態的初始代碼塊,這個代碼塊在之前創建對象hello的時候已經分配了空間,也就是已經實例化了。所以在創建對象hello2的時候沒有再執行這個靜態代碼塊。所以只輸出了兩行“通過初始化為變量num2賦值”和“通過構造方法為變量num1賦值”。