您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹java中靜態代碼塊的用法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
靜態代碼塊就是在類中用static{}括起來的代,因為屬于類,所以在程序載入的時候就執行,優先于創造對象
static
可以修飾屬性、方法、內部類、代碼塊。
靜態代碼塊在類加載時就調用, 而且只執行一次, 并且優先于各種代碼塊以及構造函數。
有一個地方的靜態代碼被使用,那么所有的靜態代碼塊都會被調用。
示例如下:
主類
public class Main { public static void main(String[] args) { // Human human = new Man(); 輸出2 4 1 3 //父類的類名調用父類的方法 //Human.test(); //輸出2 6 在調用靜態代碼時,怕需要上面的靜態代碼塊的內容,所以將其鏈接到內存 與子類無關 //子類的類名調用子類的方法 //Man.doo(); // 輸出2 4 5 在調用子類的靜態方法時,父類的靜態代碼塊執行,與父類的靜態代碼塊有關 //子類的類名調用父類的方法 //Man.test(); // 輸出 2 6 注意這個能調test不是因為繼承,test聲明在了human里,子類可以調用父類的方法, //但是父類不能調用子類的方法 所以在Main中不可直達Man中的的方法 //子類調用了父類的方法,在父類的方法里又引用了子類里的靜態方法 //Man.test(); 輸出 2 6 4 5 } }
父類
public class Human { static { System.out.println("2.父類中的靜態代碼塊"); } public String name; public Human() { System.out.println("1.父類中的構造方法"); } public static void test() { System.out.println("6.父類中的靜態方法"); } }
子類
public class Man extends Human { static { System.out.println("4.子類中的靜態代碼塊"); } public Man() { System.out.println("3.子類中的構造方法"); } public static void doo() { System.out.println("5.子類中的靜態方法"); } }
靜態代碼塊內容先執行(但只執行一次),接著執行父類構造方法,然后執行子類構造方法。
關于java中靜態代碼塊的用法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。