About Constructor

类别:Java 点击:0 评论:0 推荐:

l          Constructor:

執行

順序

n           配置參考變數,配置記憶體

n           預設初始化(將該object內所有fields全歸零)

n           明顯初始化(依定義順序執行instance var init及instance(non-static free floating block) init,此動作將與下個動作交叉執行)

n           執行連緒的建構子

u          當程式一直往上呼叫,在回程且跨越class時(從Object回到A class),會先check class A是否有做明顯初始化。

語法

n           constructor第一行必須是this(..)或super(..),否則JVM會自己在第一行插入super()。

n           this(...)是用來呼叫另一個overloading constructor。使用時必須是constructor的第一行。

n           super(...)是用來呼叫父類別的某個constructor,使用時必須是constructor的第一行。

可以

n           方法名稱(Method)可以跟Constructor和Class名稱相同。

n           Constructor可以用 public、private、protected、(default)修飾。

n           使用private的影響為避免被實體化(instantiates)。

n           可以overloading constructors來定義一個以上的constructors。

n           constructor可以丟出Exception。

不可以

n           constructor不能有回傳值、也不能夠被繼承。

n           不能overriding constructors。

n           constructor內不可以同時有this(...)或super(...)。

注意

n           constructor不會被繼承,如果自己沒有寫constructor,compiler時會加入default constructor ,為一個no parameters and throws no exceptions,其存取權限將與class相同。特別注意,若已定義constructor後,compiler就不會再給default constructor。

n           在繼承的情況下,如果superclass的constructor有定義Exception in the throws clause,那麼他的subclass也必須定義Exception in the throws clause。



来自:【 Garfield 的 SCJP 閱讀筆記 】

本文地址:http://com.8s8s.com/it/it14954.htm