1.建構函式不是方法!!
原因1:方法的話,會直接執行方法體內的**,但是建構函式首先執行的不是{}裡的**塊,而是給物件的成員初始化;
2.方法可以被呼叫其他方法呼叫,但是建構函式不能被方法或變數呼叫。
package com.statics.www;
public class son
public static int cal2()
public son()
執行結果為:
2. 從上面測試得出結論:
建構函式初始化物件時,執行的順序是
0.方法優先存在於任何變數或者物件,存在於類中,而不是物件中。即構造物件前,方法就存在。
第一步. 靜態變數賦值
第二步.**塊或者全域性變數,(執行順序由**位置決定,如果**塊在前,優先執行**塊;如果變數在前,優先變數賦值)
第三步.執行建構函式內部**
3.繼承中的建構函式執行順序:
0.子類重寫了父類的方法;
1.呼叫父類建構函式();
2.呼叫子類建構函式();
父類**:
package com.statics.www;
public class father
public void test()
}子類**:
可以看出被呼叫的test()方法是子類的test(),另外特別注意num =0!!!!!!因為父類的num 是private的不能繼承,但是子類的num還沒有被賦值(要等到父類構造完成,才能構造子類),所以預設是0
java 建構函式是如何執行的
1.建構函式不是方法!原因1 方法的話,會直接執行方法體內的 但是建構函式首先執行的不是 裡的 塊,而是給物件的成員初始化 2.方法可以被呼叫其他方法呼叫,但是建構函式不能被方法或變數呼叫。package com.statics.www public class son public static ...
關於java建構函式中的執行順序
public class testinte public testinte public void sayhello public static void main string args 一般的結果是先執行靜態 塊,再執行普通碼塊,最後再執行空參 塊 靜態 塊執行了.在靜態 賦值前,order版本...
Java 建構函式
1.建構函式的特點 1 和類名具有相同的名稱 2 沒有返回型別,注意這裡的沒有返回型別和void是不一樣的。3 不能在建構函式中寫帶有return的語句 2.建構函式的過載 建構函式一樣可以進行過載,根據引數列表的引數個數或者引數型別進行區分。3.建構函式的一些細節 1 當我們在乙個類中沒有寫建構函...