java的類建構函式可以訪問哪些變數
阿新 • • 發佈:2019-02-18
/** * Created by cxh on 17/08/03. */ public class Main { /** * 程式碼驗證問題: * 1.使用this關鍵字時,建構函式裡面可以訪問:任意位置的成員變數 * 2.不使用this關鍵字,建構函式裡面可以訪問:任意位置成員變數 or 靜態變數. * 和jvm相聯絡: * (1)類載入機制中,類載入的最後一步:初始化,即為執行<clinit()>方法,包括了:類變數賦值 and 靜態語句塊的執行. * (2)成員變數和類的建構函式一起進行初始化.二者順序為:成員變數先進行賦初始值,然後執行類的建構函式. * 所以說,在類的建構函式中,可以訪問任意靜態變數,任意成員變數.原因在於二者都已經賦過值了。 */ int i; static int j; Main(){ i=3; System.out.println("i : "+i); System.out.println("c : "+c); System.out.println("k : "+k); } int c; static int k; public static void main(String[] args) { Main a=new Main(); } }
結果:
i : 3
c : 0
k : 0
Process finished with exit code 0