Android代碼塊執(zhí)行順序分析總結(jié)
本文介紹了Android代碼塊執(zhí)行順序分析總結(jié),分享給大家,具體如下:
子類、父類變量,代碼塊,以及構(gòu)造方法的加載順序,是我們在程序開發(fā)中時不時遇到的一個問題,也是比較容易混淆的。
基礎(chǔ)準(zhǔn)備:
- 變量: 成員變量(叫類變量、實(shí)例變量)和局部變量
- 方法: 成員方法和構(gòu)造方法
- 代碼塊:普通代碼塊、構(gòu)造代碼塊、靜態(tài)代碼塊、同步代碼塊
測試的父類:
public class ParentClass {
public static String name = "爸爸";
public int age = 40;
public ParentClass(){
System.out.println("父類構(gòu)造函數(shù)");
}
//非靜態(tài)代碼塊
{
System.out.println("父類非靜態(tài)代碼塊" + "---" + age);
}
//靜態(tài)代碼塊
static{
System.out.println("父類靜態(tài)代碼塊" + "---" + name);
}
}
測試的子類:
public class ChildrenClass extends ParentClass{
public static String name = "兒子";
public int age = 15;
public ChildrenClass(){
System.out.println("子類構(gòu)造函數(shù)");
}
{
System.out.println("子類非靜態(tài)代碼塊" + "---" + age);
}
static {
System.out.println("子類靜態(tài)代碼塊" + "---" + name);
}
}
執(zhí)行new ChildrenClass()結(jié)果:

結(jié)果分析:
父類靜態(tài)代碼塊執(zhí)行前,父類靜態(tài)變量就已經(jīng)執(zhí)行了。
父類非靜態(tài)代碼塊執(zhí)行前,父類非靜態(tài)變量就已經(jīng)執(zhí)行了。
上面結(jié)論子類同理。
代碼塊執(zhí)行順序總結(jié):
父類的靜態(tài)成員變量—->父類靜態(tài)代碼塊—->子類靜態(tài)成員變量—->子類靜態(tài)代碼塊—>父類非靜態(tài)變量—->父類非靜態(tài)代碼塊—->父類構(gòu)造方法—->子類非靜態(tài)變量—->子類非靜態(tài)代碼塊—->子類構(gòu)造方法。
另外關(guān)于代碼塊的總結(jié):
- 在類第一次調(diào)用時,靜態(tài)代碼塊只執(zhí)行這一次。
- 靜態(tài)代碼塊和靜態(tài)方法只能調(diào)用靜態(tài)變量;
- 非靜態(tài)代碼塊和非靜態(tài)方法可以調(diào)用任何(靜態(tài)+非靜態(tài))變量。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android利用Fragment實(shí)現(xiàn)Tab選項(xiàng)卡效果
這篇文章主要為大家詳細(xì)介紹了Android利用Fragment實(shí)現(xiàn)Tab選項(xiàng)卡效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08
Android studio 實(shí)現(xiàn)手機(jī)掃描二維碼功能
這篇文章主要介紹了Android studio 實(shí)現(xiàn)手機(jī)掃描二維碼功能,需要的朋友可以參考下2019-10-10
Android開發(fā)壁紙的驗(yàn)證設(shè)置和確認(rèn)功能實(shí)現(xiàn)demo
android?wallpaper包括鎖屏壁紙和桌面壁紙,壁紙又區(qū)分靜態(tài)和動態(tài)兩種。本文詳細(xì)介紹靜態(tài)壁紙設(shè)置和確認(rèn),有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-04-04
Android使用criteria選擇合適的地理位置服務(wù)實(shí)現(xiàn)方法
這篇文章主要介紹了Android使用criteria選擇合適的地理位置服務(wù)實(shí)現(xiàn)方法,實(shí)例分析了Criteria的具體使用技巧,需要的朋友可以參考下2016-01-01
Android自定義View實(shí)現(xiàn)等級滑動條的實(shí)例
這篇文章主要介紹了 Android自定義View實(shí)現(xiàn)等級滑動條的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04
Android入門之IntentService的使用教程詳解
IntentService的生命周期中有一個非常好的方法-onHandleIntent方法,它是一個abstract方法,開發(fā)者在實(shí)現(xiàn)IntentService時可以覆蓋它來處理“長事務(wù)”。本文就來聊聊IntentService的使用,需要的可以參考一下2022-12-12
MaterialApp?Flutter?應(yīng)用全局配置與主題管理詳解
這篇文章主要為大家介紹了MaterialApp?Flutter?應(yīng)用全局配置與主題管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

