Java 非靜態(tài)初始化的例子
在繼承關(guān)系中,靜態(tài)初始化、非靜態(tài)初始化和構(gòu)造函數(shù)的執(zhí)行順序
public class ExA { static { System.out.println('父類--靜態(tài)代碼塊'); } public ExA() { System.out.println('父類--構(gòu)造函數(shù)'); } { //非靜態(tài)代碼塊 System.out.println('父類--非靜態(tài)代碼塊'); } public static void main(String[] args) { new ExB(); }} class ExB extends ExA { static { System.out.println('子類--靜態(tài)代碼塊'); } { //非靜態(tài)代碼塊 System.out.println('子類--非靜態(tài)代碼塊'); } public ExB() { System.out.println('子類--構(gòu)造函數(shù)'); }}
執(zhí)行結(jié)果:
父類--靜態(tài)代碼塊子類--靜態(tài)代碼塊父類--非靜態(tài)代碼塊父類--構(gòu)造函數(shù)子類--非靜態(tài)代碼塊子類--構(gòu)造函數(shù)
從上邊的例子我們可以得出非靜態(tài)代碼塊的初始化順序是在靜態(tài)代碼塊的初始化之后。下邊我們再來看另一個例子:
class Mug{ public Mug(int marker) { System.out.println('Mug('+marker+')'); } void f(int marker){ System.out.println('f('+marker+')'); }}public class Mugs { Mug mug1; Mug mug2; { //非靜態(tài)代碼塊 mug1 = new Mug(1); mug2 = new Mug(2); System.out.println('mug1 & mug2 initialized'); } Mugs(){ System.out.println('Mugs()'); } Mugs(int i){ System.out.println('Mugs(int i)'); } public static void main(String[] args) { System.out.println('Inside main()'); //首先執(zhí)行Mugs類中非靜態(tài)代碼塊,創(chuàng)建兩個對象。然后執(zhí)行無參構(gòu)造函數(shù) new Mugs(); System.out.println('new Mugs() completed'); //再執(zhí)行Mugs類中非靜態(tài)代碼塊,這也是和靜態(tài)代碼塊只初始化一次的不同之后,其次調(diào)用有參構(gòu)造函數(shù) new Mugs(1); System.out.println('new Mugs(1) completed'); } }
以上就是Java 非靜態(tài)初始化的例子的詳細(xì)內(nèi)容,更多關(guān)于Java 非靜態(tài)初始化的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML2. python excel和yaml文件的讀取封裝3. Java8內(nèi)存模型PermGen Metaspace實(shí)例解析4. python3實(shí)現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)5. moment轉(zhuǎn)化時間戳出現(xiàn)Invalid Date的問題及解決6. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個IP代理模塊7. Docker鏡像管理常用操作代碼示例8. 詳解docker pull 下來的鏡像都存到了哪里9. Python中內(nèi)建模塊collections如何使用10. asp批量添加修改刪除操作示例代碼
