課程
/后端開發
/Java
/Java入門第二季 升級版
在例題中,當再次創建對象 hello2 時并未執行靜態初始化塊,我想知道這僅僅是創建對象,并未調用啊,為什么普通初始化塊和構造方法還要在執行呢、?
2016-09-07
源自:Java入門第二季 升級版 8-10
正在回答
創建一個對象的過程就包括了調用構造方法
HelloWorld hello2 = new HelloWorld();
hello2是一個對象引用,是使用new操作符構建的一個HelloWorld對象
類名HelloWorld后面是構造函數的參數列表,顯然上面的構造函數參數為空
初始化塊是在創建對象時對屬性初始化(有的話就調用),構造方法是創建對象后對屬性初始化(規定,必須調用)
到這里就明白執行順序是什么了吧
當然是先執行靜態代碼塊,接著執行構造方法
旗開得勝wds 提問者
??Hello?h?=?new?Hello()
new Hello()就是在調用 ?無參構造器 ? ? ? ? ?類被加載的時候 ? 靜態代碼塊就會被執行
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
4 回答為什么創建對象,幾個初始化模塊就會執行
3 回答為什么在main()中創建對象,初始化塊能直接運行
4 回答為什么創建對象時會進行初始化
1 回答構造方法可以初始化對象,還要初始化塊干嘛?
1 回答初始化塊執行和對象的關系
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-09-07
創建一個對象的過程就包括了調用構造方法
HelloWorld hello2 = new HelloWorld();
hello2是一個對象引用,是使用new操作符構建的一個HelloWorld對象
類名HelloWorld后面是構造函數的參數列表,顯然上面的構造函數參數為空
初始化塊是在創建對象時對屬性初始化(有的話就調用),構造方法是創建對象后對屬性初始化(規定,必須調用)
到這里就明白執行順序是什么了吧
當然是先執行靜態代碼塊,接著執行構造方法
2016-09-07
new Hello()就是在調用 ?無參構造器 ? ? ? ? ?類被加載的時候 ? 靜態代碼塊就會被執行