静的ブロックの実行順序、静的メソッド、コンストラクタ

オリジナルリンク: https://blog.csdn.net/qq_25615395/article/details/78294985

例子:
package io.renren;

/ **
 * 9/29/17上のルートによって作成されました。
 * /
publicクラスStaticTest {


    静的なint型の年齢= 1;
    int型AGE1 = 2;

    {静的
        するSystem.out.println(「これは静的なブロックです」);
    }

    {
        のSystem.out.println(AGE1の+ "これは、通常のブロックです");
    }

    StaticTestパブリック(){
        System.out.printlnは( "これはコンストラクタです");
    }

    静的ボイドを表示パブリック(){
        System.out.printlnは(「これは静的メソッドです」);
    }

    {()楽しいボイド公共
        のSystem.out.printlnは(「これは、従来の方法です」);
    }

    パブリック静的無効メイン(文字列[] args){
        //System.out.println(age)。
        StaticTestトン=新しいStaticTest();
        StaticTest.show();
        t.fun();
        /*System.out.println(t.age1);*/

        列A = Boolean.toString(TRUE)。
        System.out.println(A)。
    }

}


結果:


初期化シーケンスのJava
クラス変数(静的変数)、インスタンス変数(非静的変数)、静的コード・ブロック(例えば:クラス変数[変数静的]、静的コードブロック)静的キーワードによって修正されたコードブロックの非静的な初期化タイミングでありますクラスは、インスタンスを作成し初期化される前に初期化され、順次上から下への順序で実行されています。

静的キーワード(例:インスタンス変数[非静的変数]の修正不可 
非静的コードブロック)は、実際に初期化は、クラスコンストラクタに抽出され実行されるが、クラスのコンストラクタのコードブロックよりも優先また、上から下に順次行われる、実行します。

一例では、ときに新しいBは、最初のクラスをロードする必要があります。(Javaクラスがクラスローダ呼び出しが新しいを使用して作成した場合にのみ課金されます)
ローディングクラス中に親クラスが最初にA、次にBサブクラスローディングがロードされ
た親クラスAをロードした後、静的動作が終了する(静的コードを含むと初期化コードに従って、出現順に、同じレベルである変数)
、静的動作完了サブ・クラスBをロードした後

クラスのロードが完了すると、インスタンス化 

1.サブユニットクラスBのインスタンスを作成する場合、最初の親クラスA2、親クラスAのインスタンス、インスタンス化された(非静的コード)の最初のメンバーにインスタンス化しなければならない 
。2.親クラスのコンストラクタは 
、実施例3、サブクラスBのメンバー(非静的コード)の 
Bのコンストラクタ4サブクラス 

>親クラス非静的初期化コード - - >親クラスのコンストラクタの初期化 - >非静的コードの設定サブクラス - >サブクラスのコンストラクタの初期化静的コードを初期化するために>子クラス - 静的コード親を初期化

 

 

要約:

実行の通常の順序:静的クラスの初期化コードが - ベースの非初期化静的コード>> - - >クラスのコンストラクタの初期化>は、クラスのインスタンスを作成します

順次階層で行われる、BはAを継承します

親クラスの静的コードを初期化 - >静的コードのサブクラスを初期化 - >クラスのインスタンスを作成します - >>親クラスの非静的コードを初期化 - >親クラスのコンストラクタの初期化 - >非静的コードのサブクラスを初期化する - >初期化サブクラスのコンストラクタ

のJavaクラスローダ:静的コードの実行が積載クラス、場所中に発生します

非静的コードを実行すると、クラスのインスタンスは、コンストラクタに優先してコード実行中に発生します。場所:クラスのコンストラクタ


----------------

 


免責事項:この記事は元の記事CSDNブロガー「陳平村黄山の英雄」であり、BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいCC 4.0に従ってください。
オリジナルリンクします。https://blog.csdn.net/qq_25615395/article/details/78294985

おすすめ

転載: blog.csdn.net/Daniel__Wu/article/details/102768513