課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
初始化塊用來給變量賦值,那為什么不直接用=賦值語句來完成?為什么要單獨(dú)劃分出來初始化塊?或者初始化塊還有其他用處?
2019-05-16
源自:Java入門第二季 升級版 8-10
正在回答
非靜態(tài)初始化塊:作用:給對象進(jìn)行初始化。對象一建立就運(yùn)行,且優(yōu)先于構(gòu)造函數(shù)的運(yùn)行。非靜態(tài)初始化塊:作用:給對象進(jìn)行初始化。對象一建立就運(yùn)行,且優(yōu)先于構(gòu)造函數(shù)的運(yùn)行。與構(gòu)造函數(shù)的區(qū)別:非靜態(tài)初始化塊給所有對象進(jìn)行統(tǒng)一初始化,構(gòu)造函數(shù)只給對應(yīng)對象初始化。應(yīng)用:將所有構(gòu)造函數(shù)共性的東西定義在構(gòu)造代碼塊中。靜態(tài)初始化塊:作用:給類進(jìn)行初始化。隨著類的加載而執(zhí)行,且只執(zhí)行一次與構(gòu)造代碼塊的區(qū)別:1)構(gòu)造代碼塊用于初始化對象,每創(chuàng)建一個對象就會被執(zhí)行一次;靜態(tài)代碼塊用于初始化類,隨著類的加載而執(zhí)行,不管創(chuàng)建幾個對象,都只執(zhí)行一次。2)靜態(tài)代碼塊優(yōu)先于構(gòu)造代碼塊的執(zhí)行3)都定義在類中,一個帶static關(guān)鍵字,一個不帶static構(gòu)造函數(shù)、非靜態(tài)初始化塊、靜態(tài)代碼塊都是用于初始化的,三者的執(zhí)行順序依次是:靜態(tài)代碼塊>構(gòu)造代碼塊>構(gòu)造函數(shù)。
總的來說,初始化塊相當(dāng)于構(gòu)造方法的無參構(gòu)造,適用于給所有對象統(tǒng)一賦初值,而構(gòu)造方法(帶參)可以給不同的對象賦不同的值,靜態(tài)初始化塊只在類加載使執(zhí)行一次,只能給靜態(tài)變量賦初值,當(dāng)不同的對象需要使用一個統(tǒng)一值的時候可以采用靜態(tài)變量和靜態(tài)初始化。
舉報(bào)
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
1 回答靜態(tài)初始化塊,初始化塊,構(gòu)造方法
1 回答到底Java中的初始化,初始化塊有什么作用?
3 回答靜態(tài)初始化塊,初始化塊,在什么情況下用到呢?
1 回答初始化塊的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-06-03
非靜態(tài)初始化塊:
作用:給對象進(jìn)行初始化。對象一建立就運(yùn)行,且優(yōu)先于構(gòu)造函數(shù)的運(yùn)行。
非靜態(tài)初始化塊:
作用:給對象進(jìn)行初始化。對象一建立就運(yùn)行,且優(yōu)先于構(gòu)造函數(shù)的運(yùn)行。
與構(gòu)造函數(shù)的區(qū)別:非靜態(tài)初始化塊給所有對象進(jìn)行統(tǒng)一初始化,構(gòu)造函數(shù)只給對應(yīng)對象初始化。
應(yīng)用:將所有構(gòu)造函數(shù)共性的東西定義在構(gòu)造代碼塊中。
靜態(tài)初始化塊:
作用:給類進(jìn)行初始化。隨著類的加載而執(zhí)行,且只執(zhí)行一次
與構(gòu)造代碼塊的區(qū)別:
1)構(gòu)造代碼塊用于初始化對象,每創(chuàng)建一個對象就會被執(zhí)行一次;靜態(tài)代碼塊用于初始化類,隨著類的加載而執(zhí)行,不管創(chuàng)建幾個對象,都只執(zhí)行一次。
2)靜態(tài)代碼塊優(yōu)先于構(gòu)造代碼塊的執(zhí)行
3)都定義在類中,一個帶static關(guān)鍵字,一個不帶static
構(gòu)造函數(shù)、非靜態(tài)初始化塊、靜態(tài)代碼塊都是用于初始化的,三者的執(zhí)行順序依次是:靜態(tài)代碼塊>構(gòu)造代碼塊>構(gòu)造函數(shù)。
總的來說,初始化塊相當(dāng)于構(gòu)造方法的無參構(gòu)造,適用于給所有對象統(tǒng)一賦初值,而構(gòu)造方法(帶參)可以給不同的對象賦不同的值,靜態(tài)初始化塊只在類加載使執(zhí)行一次,只能給靜態(tài)變量賦初值,當(dāng)不同的對象需要使用一個統(tǒng)一值的時候可以采用靜態(tài)變量和靜態(tài)初始化。