1. 程式人生 > >【Java基礎】程式碼塊,構造程式碼塊,靜態程式碼塊

【Java基礎】程式碼塊,構造程式碼塊,靜態程式碼塊

程式碼塊

public class Demo {

    public static void main(String[] args){
        {
            int a = 1;
            System.out.println(a);
        }
        int a = 2;
        System.out.println(a);
    }
}

執行結果

1

2

構造程式碼塊

放在要建立物件的類中的程式碼塊,稱為構造程式碼塊。構造程式碼塊與構造方法先後順序無關,首先呼叫構造程式碼塊,然後呼叫構造方法

class 
A { public A(){ System.out.println("呼叫了構造方法"); } { System.out.println("呼叫了構造程式碼塊"); } } public class Demo { public static void main(String[] args){ new A(); new A(); } }

執行結果

呼叫了構造程式碼塊
呼叫了構造方法
呼叫了構造程式碼塊
呼叫了構造方法

靜態程式碼塊

靜態程式碼塊優先於構造程式碼塊執行,且無論建立多少物件,一個靜態程式碼塊只會被呼叫一次

class A {

    public A(){
        System.out.println("呼叫了構造方法");
    }

    {
        System.out.println("呼叫了構造程式碼塊");
    }

    static {
        System.out.println("呼叫了靜態程式碼塊");
    }

}

public class Demo {

    public static void main(String[] args){
        new A();
        new A();
    }
}

執行結果:

呼叫了靜態程式碼塊
呼叫了構造程式碼塊
呼叫了構造方法
呼叫了構造程式碼塊

呼叫了構造方法