首頁  >  文章  >  Java  >  java深入學習之static靜態程式碼區塊

java深入學習之static靜態程式碼區塊

王林
王林轉載
2019-11-27 14:00:002558瀏覽

java深入學習之static靜態程式碼區塊

靜態程式碼區塊

static可以修飾屬性、方法、內部類別、程式碼區塊。

靜態程式碼區塊在類別載入時就呼叫, 而且只執行一次, 並且優先於各種程式碼區塊以及建構函式。

有一個地方的靜態程式碼被使用,那麼所有的靜態程式碼區塊都會被呼叫。

相關影片教學推薦:java免費影片教學

範例如下:

父類別

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.子类中的静态方法");
    }
}

主類別

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
    }
}

靜態程式碼區塊內容先執行(但只執行一次),接著執行父類別建構方法,然後執行子類別建構方法。

本文來自java入門程式欄目,歡迎大家來共同交流學習!

以上是java深入學習之static靜態程式碼區塊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除