課程
/后端開發
/Java
/Java入門第二季 升級版
通過構造方法初始化與通過初始化塊初始化有什么區別嗎 我怎么覺得一樣
2016-09-26
源自:Java入門第二季 升級版 8-10
正在回答
我就按照慕課網練習題的例子來說
// 構造方法
public ? HelloWorld() {?
System.out.println("通過構造方法初始化name");
name = "tom";
}
// 初始化塊
{?
System.out.println("通過初始化塊初始化sex");
sex = "男";
分析:使用構造方法可以為每一個對象賦值name,使用初始化塊賦值后,每個sex屬性都是“男”
所以構造方法賦值比較常用,如果是只有一個對象那么效果完全一樣
????????? 另外執行順序不同(靜態初始化塊 >-實例初始化塊>- 構造函數)。靜態代碼塊在類加載時被執行,而非靜態代碼(包括初始化代碼塊和構造函數)在生成對象時才被執行
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答初始化問題
1 回答初始化問題
2 回答初始化塊問題
2 回答靜態初始化問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-09-26
我就按照慕課網練習題的例子來說
// 構造方法
public ? HelloWorld() {?
System.out.println("通過構造方法初始化name");
name = "tom";
}
// 初始化塊
{?
System.out.println("通過初始化塊初始化sex");
sex = "男";
}
分析:使用構造方法可以為每一個對象賦值name,使用初始化塊賦值后,每個sex屬性都是“男”
所以構造方法賦值比較常用,如果是只有一個對象那么效果完全一樣
????????? 另外執行順序不同(靜態初始化塊 >-實例初始化塊>- 構造函數)。靜態代碼塊在類加載時被執行,而非靜態代碼(包括初始化代碼塊和構造函數)在生成對象時才被執行