iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

菜雞的JAVA日記系列 第 10

DAY10-JAVA的類別(4)-建構元

建構元
在JAVA中,建構元所扮演的主要角色,是幫助新建立的物件設定初值。

修飾子 類別名稱(型態1 引數1,型態2 引數2,...){
程式敘述;
...
}
建構元的名稱必須與其所屬的類別名稱相同。此外,建構元不能有回傳值。

建構元的呼叫時機
一般函數是在需要用到時才呼叫,而建構元則是在建立物件時,便會自動呼叫,並執行建構元的內容。因此。建構元不須從程式直接呼叫,而是在物件產生時自動呼叫。

基於建構元的特性,可以用來對物件的資料成員做初始化(initialization)的設定。

class Test{  //定義類別Test
    private int height = 10;
    private int width;
    
    public Test(int i){  //定義建構元Test()
         width = i;
    }
    ...
}

在建構元名稱的前面還是不能加上void這個字,否則在編譯時會出現錯誤。建構元的好處在於建立物件的同時,便可設定物件的初值。

建構元的多載
建構元與函數相同,可以進行多載。

class Test{  //定義類別Test
    private Strint color;
    private int height = 10;
    private int width;
    
    public Test(){  //沒有引數的建構元
         ...
    }
    public Test(String color, int r){  //有兩個引數的建構元
         ...
    }
    ...
}

兩個建構元之間的呼叫
從某一建構元內呼叫另一建構元,是透過this()來呼叫。

this("Blue",30); //呼叫建構元Test(String,int)

在某一建構元呼叫另一建構元時,必須以this()來呼叫,而不能以建構元來直接呼叫,否則編譯時將出現錯誤。
this()必須寫在建構元內第一行的位置。如果要呼叫沒有引數的建構元時,即在this()的括號內,不要填入任何引數即可!

this(); //呼叫沒有引數的建構元

菜鳥工程師的體脂肪

菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link

打完疫苗第二天...
頭太暈、手太痛了/images/emoticon/emoticon02.gif
還把昨天的標題寫成DAY10,今天寫文還想說怎麼寫過DAY10了XDD((已神智不清......
See you tomorrow~~


上一篇
DAY9-JAVA的類別(3)-多載
下一篇
DAY11-JAVA的類別(5)
系列文
菜雞的JAVA日記30

尚未有邦友留言

立即登入留言