1. 程式人生 > >靜態程式碼塊和構造程式碼塊

靜態程式碼塊和構造程式碼塊

靜態程式碼塊

/*
    靜態程式碼塊:隨著類的載入就執行,只執行一次,優先於main函式執行
*/
class Test
{
    static{
        System.out.println("C");
    }
    public static void show(){
        System.out.println("show");
    }

}
class Test4 
{

    static {

        System.out.println("A");
    }
    public static void main(String[] args) 
    {
        System.out
.println("Hello World!"); Test test = null; //此處不執行Test的靜態程式碼塊,因為並沒有例項化物件,沒有進行類的載入 new Test(); Test t = new Test(); Test.show(); } static{ System.out.println("B"); } }

輸出結果:
這裡寫圖片描述

構造程式碼塊

/*
    構造程式碼塊:物件以建立就執行,且優先於建構函式執行
    構造程式碼塊可以對所有物件進行初始化
    建構函式只能針對特定的物件進行初始化
*/
class Person { String name; int age; //構造程式碼塊 { System.out.println("構造程式碼塊"); } Person(){ System.out.println("建構函式");} } class Test5 { public static void main(String[] args) { Person ren1 = new Person(); Person ren2 = new Person(); //System.out.println("Hello World!");
} }

輸出結果:構造程式碼塊
建構函式
構造程式碼塊
建構函式