ホームページ  >  記事  >  Java  >  Java 詳細学習の静的静的コード ブロック

Java 詳細学習の静的静的コード ブロック

王林
王林転載
2019-11-27 14:00:002598ブラウズ

Java 詳細学習の静的静的コード ブロック

静的コード ブロック

staticプロパティ、メソッド、内部クラス、およびコード ブロックを変更できます。

静的コード ブロックは、クラスのロード時に呼び出され、1 回だけ実行され、さまざまなコード ブロックやコンストラクターよりも優先されます。

静的コードが 1 か所で使用されている場合、すべての静的コード ブロックが呼び出されます。

推奨される関連ビデオ チュートリアル: 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.子类中的静态方法");
    }
}

Main class

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

静的コード ブロックのコンテンツが最初に実行され (ただし 1 回のみ)、次に親クラスのコンストラクターが実行され、次にサブクラスのコンストラクターが実行されます。

この記事は Java 入門プログラム のコラムから抜粋したものです。コミュニケーションをとり、一緒に学びましょう!

以上がJava 詳細学習の静的静的コード ブロックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。