標籤:int test main div sys 靜態代碼塊 object 構造方法 new
// 對象初始化的過程class Fu { int num=55;// 1, num=0;對象中的成員變數預設初始化。5, 顯示初始化 num=55 { System.out.println("FU類構造代碼塊");// 6, 構造代碼塊初始化 } Fu() { // 3 FU類構造函函數初始化 super(); // 4 object構造函函數初始化 // 5 顯示初始化,初始化成員變數 // 6 構造代碼塊初始化類 System.out.println("FU建構函式"+num);// 7 ,num=55; show();// 8,被覆蓋運行子類 } void show() { System.out.println("FU SHOW "); } static { // -1,靜態代碼塊隨類的載入而載入,且只執行一次 先載入FU System.out.println("static FU"); }}class Zi extends Fu { int num=5; // 1, num=0;對象中的成員變數預設初始化. 10, 顯示初始化 num=5 // 構造代碼塊 { System.out.println("zi構造代碼塊 " +num); // 11 構造代碼塊初始化 num=5 } // 建構函式 Zi() { // 2, 建構函式初始化 super(); //3 , // 10, 顯示初始化,初始化成員變數 // 11 構造代碼塊初始化類 System.out.println("zi建構函式"+num); // 12,num=5; } void show() { // 8 System.out.println("ZI SHOW "+num); // 9,num=0; } static { // 0, 再載入ZI System.out.println("static ZI"); }}class TestDemo { public static void main(String[] args) { // 對象初始化的過程 new Zi(); }}
// // 結果為: static FU
// static ZI
// FU類構造代碼塊
// FU建構函式55
// ZI SHOW 0
// zi構造代碼塊5
// zi建構函式5
// 總結:靜態代碼塊=>非靜態代碼塊=>構造方法
// 父子關係:父類靜態代碼塊=>子類靜態代碼塊=>父類非靜態代碼塊=>父類建構函式=>子類非靜態代碼塊=>子類建構函式
java中一個對象的初始化過程