溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中靜態(tài)代碼塊的用法

發(fā)布時間:2020-06-23 18:06:42 來源:億速云 閱讀:182 作者:元一 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹java中靜態(tài)代碼塊的用法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

靜態(tài)代碼塊就是在類中用static{}括起來的代,因為屬于類,所以在程序載入的時候就執(zhí)行,優(yōu)先于創(chuàng)造對象

static可以修飾屬性、方法、內(nèi)部類、代碼塊。

靜態(tài)代碼塊在類加載時就調(diào)用, 而且只執(zhí)行一次, 并且優(yōu)先于各種代碼塊以及構(gòu)造函數(shù)。

有一個地方的靜態(tài)代碼被使用,那么所有的靜態(tài)代碼塊都會被調(diào)用。

示例如下:

主類

public class Main {
    public static void main(String[] args) {
        // Human human = new Man(); 輸出2 4 1 3
        
        //父類的類名調(diào)用父類的方法
		//Human.test();      
		//輸出2 6   在調(diào)用靜態(tài)代碼時,怕需要上面的靜態(tài)代碼塊的內(nèi)容,所以將其鏈接到內(nèi)存    與子類無關
        
        //子類的類名調(diào)用子類的方法
        //Man.doo();       
       // 輸出2  4  5  在調(diào)用子類的靜態(tài)方法時,父類的靜態(tài)代碼塊執(zhí)行,與父類的靜態(tài)代碼塊有關
         
         //子類的類名調(diào)用父類的方法
         //Man.test();   
        // 輸出  2 6  注意這個能調(diào)test不是因為繼承,test聲明在了human里,子類可以調(diào)用父類的方法,
        //但是父類不能調(diào)用子類的方法  所以在Main中不可直達Man中的的方法

        //子類調(diào)用了父類的方法,在父類的方法里又引用了子類里的靜態(tài)方法
        //Man.test();    輸出  2 6 4 5
    }
}

父類

public class Human {
    static {
        System.out.println("2.父類中的靜態(tài)代碼塊");
    }
    public String name;
    public Human() {
        System.out.println("1.父類中的構(gòu)造方法");
    }

    public static void test() {
        System.out.println("6.父類中的靜態(tài)方法");
    }
}

子類

public class Man extends Human {
    static {
        System.out.println("4.子類中的靜態(tài)代碼塊");
    }
    public Man() {
        System.out.println("3.子類中的構(gòu)造方法");
    }
    public static void doo() {
        System.out.println("5.子類中的靜態(tài)方法");
    }
}

靜態(tài)代碼塊內(nèi)容先執(zhí)行(但只執(zhí)行一次),接著執(zhí)行父類構(gòu)造方法,然后執(zhí)行子類構(gòu)造方法。

關于java中靜態(tài)代碼塊的用法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI