**:
類a的定義
01
package
com.sequence.test;
02
03
public
class
a
13
// 例項變數
14
string type;
15
// 非靜態自由塊
16
20
string size;
21
// 建構函式
22
public
a()
26
}
類b的定義:
01
package
com.sequence.test;
02
03
public
class
b
extends
a
09
// 非靜態自由塊
10
13
public
b()
16
}
測試類initsequencetest:
01
package
com.sequence.test;
02
03
public
class
initsequencetest
12
13
}
輸出:
總結如下:
1,靜態自由塊在class載入的時候執行。只會執行一次。
2,非靜態自由塊在新建類的例項的時候執行。可以多次執行。在新建其或子類的例項時,就會執行。
當存在多個同一種型別的自由塊時,執行的順序是根據他們在**塊中出現的順序。
3,當子類繼承父類,執行的順序如下:父類的靜態變數和靜態域->子類的靜態變數和靜態域->父類的非靜態自由塊->父類的建構函式->子類的非靜態自由塊->子類的建構函式
Java之類例項化的順序
在建立乙個物件例項時,是如何一步步的進行 執行的呢,一般來說,順序如下 1.首先是父類的靜態變數和靜態 塊 看兩者的書寫順序 2.第二執行子類的靜態變數和靜態 塊 看兩者的書寫順序 3.第三執行父類的成員變數賦值 4.第四執行父類類的構造 塊 5.第五執行父類的構造方法 6.執行子類的構造 塊 7....
類的例項化順序
首先列出例項化的順序 具體大家可以自行通過 進行驗證。在例項化的時候,可能會出現成員變數例項化類,那麼成員例項化。假造到public father father new father 時,在去初始化father這類的public father father new father 就很容易程式設計死迴...
類的例項化順序
package com.company.demo1 public class classinit class a public string s1 prtstring a的成員變數.public static string s2 prtstring a的static變數.protected a pu...