是其餘方法建立該類對象時所引用的方法,能夠爲新的對象賦上初始值,老是和new運算符一塊兒使用在建立對象的語句中,同一個類能夠同時重載多個構造方法。 注意:構造方法方法名必須和類名相同且沒有返回類型也不能加voidbash
public 類 名 ( ){
//代碼
}
public 類 名 ( 參 數 1 ){
//代碼
}
public 類 名 ( 參 數 1 , 參 數 2 ){
//代碼
}
public 類 名 ( 參 數 2 , 參 數 1){
//代碼
}
複製代碼
當一個類沒有定義構造方法時系統會默認定義一個無參代碼塊,但當一個類定義了一個任意的構造方法後,系統定義的無構造方法會失效,因此通常爲防止出錯在定義構造方法時會先定義一個無參構造方法。測試
當一個地方建立了一個該類對象時會執行構造代碼塊。構造代碼塊沒有特別的名稱,沒有返回值,除了static外不能加任何修飾詞在前面,且每次建立對象時總會使用構造方法。網站
{
//代碼
}
複製代碼
而靜態代碼塊又是一種特殊的構造代碼塊,除了有構造代碼塊的性質外,還有其獨有的特色。 一個類無論建立幾回對象,靜態方法只會執行一次。ui
static{
//代碼
}
複製代碼
其實咱們能夠把建立一個對象形容成去相親。當建立一個新對象時,至關去你去相親網上找對象。靜態對象就是你去的相親網站,父類的靜態代碼塊是網站的名稱,因此是第一個執行的。而子類的靜態代碼塊是你要找的對象的性別,因此是第二個執行的。 父類的構造代碼塊是對象的名稱,因此是第三個執行的。而後父類的構造方法是對象的基本信息,因此是第四個執行。最後纔是子類的構造代碼塊和構造方法,分別爲對象的家庭和詳細信息。因此是先執行構造代碼塊後執行構造方法。spa
父類code
package test;
public class Father {
{
System.out.println("我是父類的構造代碼塊");
}
static{
System.out.println("我是父類的靜態代碼塊");
}
public Father() {
System.out.println("我是父類的構造方法");
}
}
複製代碼
子類cdn
package test;
public class Son extends Father {
{
System.out.println("我是子類的構造代碼塊");
}
static{
System.out.println("我是子類的靜態代碼塊");
}
public Son() {
System.out.println("我是子類的構造方法");
}
}
複製代碼
測試類對象
package test;
public class Test {
public static void main(String[] args) {
Son c=new Son();
}
}
複製代碼
輸出結果blog