物件都有構造方法,如果沒有的話,編譯器會自動加乙個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...