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