Java構造方法

2021-08-09 01:52:37 字數 1331 閱讀 6651

所謂的構造方法,就是在建立物件的時候自動呼叫的方法。我們來直接看個例子。

public class mail 

mail(string name,string addr) //有參的構造方法

public void send()

} public class test

}

在mail郵件類中,我寫了三個方法,其中有兩個是構造方法,有乙個是普通的方法。

你可以看到又兩個方法的名字跟類名一樣,那兩個方法就是構造方法。第乙個構造方法是預設的,沒有引數的。

我們在main方法中建立的物件m1,並沒有給任何的引數,當建立物件的時候,就會自動呼叫這個無參方法。

當我們再main方法中建立物件m2時,傳入了兩個字串引數,這時候就會自動呼叫mail類中的另乙個有參的構造方法。

程式執行的結果是這樣的。

郵件已傳送!

傳送人是:雲都小生

郵件已傳送!

傳送人是:玉涵

關於構造方法,最重要的知識點,就是關於構造方法的過載。方法過載是什麼意思呢?其實上面的例子已經說明了。

允許同樣名字相同,但引數不同的方法存在。

繼續用我們上面的mail類作為例子。

我們繼續在mail中寫這個方法。

mail(string addr)

我們在main方法中寫這個。

//main方法

mail m3 = new mail("深圳");

m3.send();

這樣一來,當我們傳入乙個字串引數的時候,就會修改郵件的位址,而郵件的傳送人預設就是」雲都小生」。

在物件建立的時候,編譯器會根據我們傳入的引數,自動呼叫相應的構造方法。當沒有相應的引數列表時,就會報錯。

mail m4 = new mail(12); //報錯,沒有該構造方法
這樣就會出錯,因為沒有乙個構造方法單獨傳入乙個int型別的引數。

需要注意的是,構造方法過載時,不允許有相同的引數列表,什麼意思呢?看個例子。

現在我們增加這樣乙個構造方法

mail(string addr,string name)

這個方法的引數列表是兩個字串,我們之前也有乙個構造方法的引數列表是兩個字串,那你說編譯器要呼叫哪乙個呢?編譯器可沒又那麼智慧型哦,所以在執行之前就會報錯了。

關於構造方法,暫時先寫到這裡,如果拉下什麼知識點,下次再補充。

2017/10/7 20:56:09 @author:雲都小生

java 構造方法

構造方法的特點 1 構造方法的方法名必須和當前的類名保持一致。2 構造方法是沒有返回值的,也就是在書寫構造方法的時候不能書寫返回值型別 注意這裡連void都不能寫 可以新增修飾符 構造方法中需要注意的問題 1 如果在乙個構造方法中呼叫其他的構造方法,那麼這個this 呼叫必須寫在該類這個構造方法中的...

Java 構造方法

構造器 構造方法 用於物件初始化!注意 1.構造方法名稱必須和類名稱相同!2.構造方法的呼叫只能在物件例項化的時候呼叫,當new 類名 之後,系統自動執行構造方法!不能通過物件名.構造方法去呼叫 無引數構造方法 public class cat 成員方法 跑動,吃東西 public void run...

Java 構造方法

關於構造器 變數優於方法執行,只要在方法外面 包括構造器 此處我主要想說明,用構造器建立類和變數的初始化順序,該程式輸出 person 1 person 3 this is build s block person 2 說明 不論變數放在哪兒,都會先於任意乙個方法的執行前執行,包括構造方法,而構造方...