課程
/后端開發
/Java
/Java入門第二季 升級版
就是我想問是,那個輸出語句按順序來不是先從num1到num2的嗎?第二就是那個創建第二個對象hello2 的時候 ,為什么運行結果還會出現通過初始化塊為變量num2賦值 這些語句。本人愚鈍,求大神指教。。
2016-01-03
源自:Java入門第二季 升級版 8-10
正在回答
程序運行時靜態初始化塊最先被執行,然后執行普通初始化塊,最后才執行構造方法。由于靜態初始化塊只在類加載時執行一次,所以當再次創建對象 hello2 時并未執行靜態初始化塊。
這個是正解。就是說因為hello1的運行順序是靜態初始化 num3 ==>初始化塊num2 ==>構造方法 num1;然后他又創建了hello2,因為靜態模塊只能執行一次,所以num3不執行,只執行num2 ==>num1
痛苦,不知道你具體指哪里,不過繼續看吧,后面有相關內容。執行的循序并不是我們打出代碼的循序,有它自己的一套規定,所以方法啊什么的可以寫在main函數后面調用,一般開發都是先寫大概思路,再寫具體方法,我想這應該就是它為什么這樣規定吧。
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
1 回答運行結果不同?
2 回答運行后結果不對
11 回答想不明白為什么這樣不行?
4 回答為什么運行結果會顯示這三行
2 回答不明白為什么輸入phone.call();就可以運行出新屬性int var;的兩個默認賦值結果;
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-01-04
程序運行時靜態初始化塊最先被執行,然后執行普通初始化塊,最后才執行構造方法。由于靜態初始化塊只在類加載時執行一次,所以當再次創建對象 hello2 時并未執行靜態初始化塊。
這個是正解。就是說因為hello1的運行順序是靜態初始化 num3 ==>初始化塊num2 ==>構造方法 num1;
然后他又創建了hello2,因為靜態模塊只能執行一次,所以num3不執行,只執行num2 ==>num1
2016-01-04
程序運行時靜態初始化塊最先被執行,然后執行普通初始化塊,最后才執行構造方法。由于靜態初始化塊只在類加載時執行一次,所以當再次創建對象 hello2 時并未執行靜態初始化塊。
2016-01-03
痛苦,不知道你具體指哪里,不過繼續看吧,后面有相關內容。執行的循序并不是我們打出代碼的循序,有它自己的一套規定,所以方法啊什么的可以寫在main函數后面調用,一般開發都是先寫大概思路,再寫具體方法,我想這應該就是它為什么這樣規定吧。