1.構造器:與類同名且沒有返回值,用來初始化類屬性;
構造器又分為無參構造器和有參構造器
1.1:無參構造器
public class Contruction{
...屬性...
public Contruction(){}//無參構造器,不寫,系統會自動添加
}
1.2:有參構造器
public class Contruction {
private int i;
public Contruction( int i){/*有參構造器,如果你定義了一個有參數的構造器,那么你在實例化對象的時候必須帶有參數,不然會報錯,
因為你創建了一個有參數 ,那么你就很清楚的知道自己在干什么,系統不會自動添加無參構造器*/
this.i = i;
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------
2.構造代碼塊:對象一實例化就執行,每實例化一次執行一次;
構造代碼塊的格式為:

結果:

從結果可以看出:構造代碼塊比構造器優先執行。
----------------------------------------------------------------------------------------------------------------------------------------------------------
3.靜態代碼塊:對象實例化就執行,無論new 多少個對象,僅執行一次;

結果:

從結果中可以看出,靜態代碼塊僅執行了一次,且優先於構造器執行。
----------------------------------------------------------------------------------------------------------------------------------------------------------
無繼承的的初始化順序:


有繼承的初始化順序:


