java 建構函式

2021-09-20 03:59:38 字數 1264 閱讀 1357

問題:

建構函式的作用?

什麼是無參構造?

什麼是有參構造?

無參構造和有參構造的區別

什麼時候用無參建構函式,什麼時候用有參的呢?

1.給物件的資料進行初始化

建構函式的作用:當new乙個物件的時候,呼叫建構函式完成物件的初始化;

1) 建立物件。任何乙個物件建立時,都需要初始化才能使用,所以任何類想要建立例項物件就必須具有建構函式。

2) 物件初始化。建構函式可以對物件進行初始化,並且是給與之格式(引數列表)相符合的物件初始化,是具有一定針對性的初始化函式。

在建立物件時,可以預先賦值。創造物件的時候,一定會呼叫,沒有建構函式,建立不了物件!

我們new乙個物件的時候,首先幫我們呼叫的函式,就是該物件的建構函式。

在乙個類中建構函式可以有多個,但是引數型別不能不能一樣,當我們new乙個物件傳入的引數,後台會幫我們對應到相應的建構函式。

如果在類中我們不宣告建構函式,jvm會幫我們預設生成乙個空引數的建構函式;如果在類中我們宣告了帶引數列表的建構函式,jvm就不會幫我們預設生成乙個空引數的建構函式,我們想要使用空引數的建構函式就必須自己去顯式的宣告乙個空參的建構函式。

有引數的建構函式,建立物件的時候,可以給屬性賦值。

給成員變數賦值:

a:首先new建立物件,例如student s = new student( );實質上是呼叫無參構造方法,在堆記憶體中開闢空間,

然後通過set***()方法進行賦值。

b:通過帶參構造方法。例如teacher t=new teacher(引數列表);實質上是呼叫有參構造方法,在堆記憶體中開闢空間同時進行賦值初始化。

有參的因為你必須以他的引數列表傳值,所以你在例項化有參建構函式的時候必須就已經給他賦值,

student s=new student(「小明」,男",20);

而無參的就不需要就相當於有參的可以省略set那一步預設生成乙個空引數的建構函式;

student s=new student();

s.setname(「小明」);

s.set***(「男」);

s.setage(20);

構造器其實就是構造物件例項的方法,無引數的構造方法是預設的,但是如果你創造了乙個帶有引數的構造方法,那麼無參的構造方法必須顯式的寫出來,否則會編譯失敗。

5.什麼時候用無參建構函式,什麼時候用有參的呢?

當你定義建構函式時,想要初始化類的某個資料成員,就需要用到有參建構函式。如果不想初始化該資料成員,只是將其宣告出來即可,等到普通函式去操作它時,在具體給它賦值。

Java 建構函式

1.建構函式的特點 1 和類名具有相同的名稱 2 沒有返回型別,注意這裡的沒有返回型別和void是不一樣的。3 不能在建構函式中寫帶有return的語句 2.建構函式的過載 建構函式一樣可以進行過載,根據引數列表的引數個數或者引數型別進行區分。3.建構函式的一些細節 1 當我們在乙個類中沒有寫建構函...

java 建構函式

1.建構函式 1 構造方法的方法名必須與類名相同。2 構造方法沒有返回型別,也不能定義為void,在方法名前面不宣告返回值資料型別。3 構造方法的主要作用是完成物件的初始化工作,它能夠把定義物件時的引數傳給物件。4 乙個類可以定義多個構造方法,如果在定義類時沒有定義構造方法,則編譯系統會自動插入乙個...

Java建構函式

物件一建立就會呼叫與之對應的建構函式。建構函式的作用 可以用於給物件進行初始化。建構函式的小細節 當乙個類中沒有定義建構函式時,那麼系統會預設給該類加入乙個空引數的建構函式。當在類中自定義了建構函式後,預設的建構函式就沒有了。建構函式和一般函式在寫法上有不同。在執行上也有不同。建構函式是在物件一建立...