1. 程式人生 > >java的類建構函式可以訪問哪些變數

java的類建構函式可以訪問哪些變數

/**
 * 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