class bowl
void f1()
}class cupboard
static bowl b3 = new bowl(3);
}class table
table(string a,int i)
}public class order
public static void main(string args)
}程式執行時:裝載order.class,執行order類中的static塊
static cupboard t1 = new cupboard();
這構造了乙個cupboard物件,構造物件時,會裝載cupboard類
,也是先執行static塊
static bowl b2 = new bowl(2);//
建立乙個bowl物件,過程和cupboard一樣,會呼叫建構函式
static bowl b3 = new bowl(3);//
同上然後執行
bowl b1 = new bowl(1);//
建立乙個bowl物件
然後執行建構函式
bowl()
接下來:
static table t2;//這只是宣告,並沒有建立物件,不用理會然後:
執行main函式中的語句
system.out.println("creating new cupboard() in main");
new cupboard(); //
注意的是,static只會初始化一次
system.out.println("creating new cupboard() in main");
order od = new order();//
建立order物件,同上
od.t3.f1();
table t4 = new table("aa",1);//
建立了table,注意這裡建構函式的呼叫this()就可以(需要了解過載)
學習筆記 java初始化順序
class bowl void f1 class cupboard static bowl b3 new bowl 3 class table table string a,int i public class order public static void main string args 程式...
java初始化順序
1 父類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 2 子類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 3 父類例項成員和例項初始化塊 按在 中出現的順序依次執行 4 父類構造方法 5 子類例項成員和例項初始化塊 按在 中出現的順序依次執行 6 子類構造方法 public abstr...
java初始化順序
例如以下 package chapter5 public class demo1one public void printinfo public static void main string args 程式一開始先執行 private static string password 0721 這行 ...