您好,登錄后才能下訂單哦!
本文介紹了Android代碼塊執行順序分析總結,分享給大家,具體如下:
子類、父類變量,代碼塊,以及構造方法的加載順序,是我們在程序開發中時不時遇到的一個問題,也是比較容易混淆的。
基礎準備:
測試的父類:
public class ParentClass { public static String name = "爸爸"; public int age = 40; public ParentClass(){ System.out.println("父類構造函數"); } //非靜態代碼塊 { System.out.println("父類非靜態代碼塊" + "---" + age); } //靜態代碼塊 static{ System.out.println("父類靜態代碼塊" + "---" + name); } }
測試的子類:
public class ChildrenClass extends ParentClass{ public static String name = "兒子"; public int age = 15; public ChildrenClass(){ System.out.println("子類構造函數"); } { System.out.println("子類非靜態代碼塊" + "---" + age); } static { System.out.println("子類靜態代碼塊" + "---" + name); } }
執行new ChildrenClass()結果:
結果分析:
父類靜態代碼塊執行前,父類靜態變量就已經執行了。
父類非靜態代碼塊執行前,父類非靜態變量就已經執行了。
上面結論子類同理。
代碼塊執行順序總結:
父類的靜態成員變量—->父類靜態代碼塊—->子類靜態成員變量—->子類靜態代碼塊—>父類非靜態變量—->父類非靜態代碼塊—->父類構造方法—->子類非靜態變量—->子類非靜態代碼塊—->子類構造方法。
另外關于代碼塊的總結:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。