、java類中的字段,第一步是自動初始化,比如定義了
Java代碼
- private int i;
由于沒有給其指派,i會被自動指派為0。這個步驟是僅限于類中的字段的,如果方法中的臨時變量,不會有這個動作。而且如果在方法中使用未經指派的變量,編譯會不通過
2、第二步是指定初始化
- private int i = 3;
如果有了顯式的賦初值,那麼第一步的自動初始化就不會發生了。但是該步驟和自動初始化,必定發生其一。即使在構造方法裡給i指派為4,還是首先會調用指定初始化,先指派成3再指派成4
3、第三步是初始化語句塊初始化
- {
- i = 4;
- }
這個動作發生在自動初始化或者指定初始化之後,發生在構造方法初始化之前。如果沒有初始化語句塊,那麼這個步驟就不會發生
4、第四步才是構造方法中的初始化
- public className(){