JAVA學習(物件構造與初始化)

2021-09-11 02:58:53 字數 926 閱讀 4620

物件都有構造方法,如果沒有的話,編譯器會自動加乙個default構造方法(不帶任何引數)但如果有了構造方法,編譯器不會加上default構造方法。我們的任何乙個物件,都需要通過constructor構造。

這裡還有乙個值得注意的點,抽象類也可以有構造方法,只是不能通過構造方法例項化乙個物件。這個構造方法可以在子類中通過super()來呼叫,如下面例子。

package mooc;

public

class

test

}abstract

classa}

class

bextends

a}

this呼叫本類的其他的構造方法

super呼叫直接父類的構造方法

this或super必須放在第一條語句,且只有乙個

如果沒有this或者super,編譯器自動加上super,即呼叫直接父類不帶引數的構造方法,而如果父類中沒有這樣的構造方法,則會編譯出錯

classa}

class

bextends

a//編譯不能通過,b中會自動呼叫super(),而a中沒有這樣的建構函式

}

步驟:

1.呼叫本類或者父類的構造方法,直到最高一層(object)

2.按照宣告順序執行欄位的初始化賦值

3.執行建構函式中的各語句

Java 物件構造與初始化

如果沒有this及super,則編譯器自動加上super 即呼叫直接父類不帶引數的構造方法。任何子類必須先或顯示或隱式地呼叫直接父類的構造方法。class constructcallthisandsuper class person person string name,int age class ...

java中物件的初始化與構造器

例子 乙個天體資料類 class body 可以做天體物件的建立與初始化 body sun new body sun.idnum body.nextid sun.name sol sun.orbits null body earth new body earth.idnum body.nextid ...

物件構造和初始化

1 構造方法 物件都有構造方法,如果沒有,則新增乙個default方法 抽象類有構造方法 2 呼叫本類和父類 this 本類其他 super父類 父類所有構造方法都得到呼叫 例 classa class bextends a 不能通過編譯 1.class a a int a 2.classa3.cl...