課程
/后端開發
/Java
/Java入門第二季 升級版
是因為構建了對象hello2嗎,可是為什么構建了新對象就會再次執行呢
2019-01-15
源自:Java入門第二季 升級版 8-10
正在回答
在創建完一次對象后程序執行時最先但只執行一次靜態初始化,然后執行普通初始化塊最后執行構造方法,然后再開始往下運行與該對象有關的命令,hello對象后輸出了三條命令,hello2對象后面則沒有命令了,故會在第二次再輸出一次方法。
qq_單曲循環_ijxzB8
http://www.xianlaiwan.cn/qadetail/288303
我看到了這個答案,盆友可以參考一下
我用eclipse試了一下,確實會執行,雖然我也不懂這是為什么,創建了對象hello2,但是對象并沒有被使用,為什么會執行呢?如果有人已經知道答案了可以告訴我一下這是為什么嗎?謝謝啦
感覺也是,又沒問你們為什么靜態代碼塊沒執行。
我的理解是,創建類的對象就是執行代碼塊的過程,
代碼塊已經建立輸出短語,輸出順序是優先級的問題
創建類的新的對象,還是執行同一類的代碼塊,只不過靜態變量已經排除(只在類加載執行一次)
全都答非所問,厲害了
因為構建對象,需要對對象進行初始化,就回去調用構造函數,也就是這里的構造方法和初始化塊,然后又因為靜態初始化只執行一次,所以hello2初始化的時候就只有2句。
通過輸出結果,我們可以看到,程序運行時靜態初始化塊最先被執行,然后執行普通初始化塊,最后才執行構造方法。由于靜態初始化塊只在類加載時執行一次,所以當再次創建對象 hello2 時并未執行靜態初始化塊。
lucky高
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
5 回答初始化塊和構造方法
1 回答靜態初始化塊,初始化塊,構造方法
3 回答為什么通過初始化塊變量和構造方法變量輸出了兩次
2 回答關于構造方法和初始化塊
1 回答初始化塊和構造方法的區別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-01-16
在創建完一次對象后程序執行時最先但只執行一次靜態初始化,然后執行普通初始化塊最后執行構造方法,然后再開始往下運行與該對象有關的命令,hello對象后輸出了三條命令,hello2對象后面則沒有命令了,故會在第二次再輸出一次方法。
2019-07-01
http://www.xianlaiwan.cn/qadetail/288303
我看到了這個答案,盆友可以參考一下
2019-07-01
我用eclipse試了一下,確實會執行,雖然我也不懂這是為什么,創建了對象hello2,但是對象并沒有被使用,為什么會執行呢?如果有人已經知道答案了可以告訴我一下這是為什么嗎?謝謝啦
2019-03-29
感覺也是,又沒問你們為什么靜態代碼塊沒執行。
我的理解是,創建類的對象就是執行代碼塊的過程,
代碼塊已經建立輸出短語,輸出順序是優先級的問題
創建類的新的對象,還是執行同一類的代碼塊,只不過靜態變量已經排除(只在類加載執行一次)
2019-02-16
全都答非所問,厲害了
2019-01-18
因為構建對象,需要對對象進行初始化,就回去調用構造函數,也就是這里的構造方法和初始化塊,然后又因為靜態初始化只執行一次,所以hello2初始化的時候就只有2句。
2019-01-16
通過輸出結果,我們可以看到,程序運行時靜態初始化塊最先被執行,然后執行普通初始化塊,最后才執行構造方法。由于靜態初始化塊只在類加載時執行一次,所以當再次創建對象 hello2 時并未執行靜態初始化塊。