public class b
static
public static void main(string args)
}
輸出為
構造塊 構造塊 靜態塊 構造塊
當初這道題做錯了 ,到後來又做了一遍又錯了,啪啪啪大臉,這回好好整理下,不能再錯了。
總結一下:
靜態方法只會初始化一次。程式中最先初始化的是靜態域包括(靜態方法、靜態變數、靜態塊),他們三個的初始化順序是看先後順序。所以需要先初始t1 = new b()和 t2 = new b();他們為靜態變數,輸出二個構造塊,然後呼叫靜態塊,最後初始化main中的new b();輸出構造塊
public class hellob extends helloa
static
//public static hellob hb = new hellob();
public static void main(string args)
}
輸出結果為:
a的靜態**塊
b的靜態**塊
a的構造**塊
a的構造方法
b的構造**塊
b的構造方法
繼承的話需要先初始化順序為
1.父類靜態塊
2.子類靜態塊
3.父類構造塊
4.子類構造塊
反正記住 構造方法是最後初始化的 優先順序很低。
靜態塊,構造塊執行順序
package demo public class test01 static public static void main string args 上述 的執行順序為 a b a 執行順序優先順序 靜態塊 main 構造塊 構造方法 注意 不要把 public static test01 t1 ...
構造塊 靜態塊
構造塊 靜態塊 static靜態塊在類載入的時候執行,且只執行一遍。靜態變數也在類載入的時候初始化 public class test public static void main string args 輸出 12 構造塊在類初始化的時候執行 public class test public s...
靜態初始化塊 初始化塊 構造方法
1.所有的靜態初始化塊都優先執行,其次才是非靜態的初始化塊和建構函式,它們的執行順序是 1 父類的靜態初始化塊 2 子類的靜態初始化塊 3 父類的初始化塊 4 父類的建構函式 5 子類的初始化塊 6 子類的建構函式 注意 1 此處的構造方法需要與自己的類名相同,2 靜態 初始化塊需要用 2.構造方法...