ホームページ > Java > &#&ベース > Javaでオブジェクトを初期化する方法

Javaでオブジェクトを初期化する方法

王林
リリース: 2019-11-20 16:33:55
オリジナル
4600 人が閲覧しました

Javaでオブジェクトを初期化する方法

ステップ 1: クラスをロードする: Java オブジェクトは初期化前にクラスがロードされ、JVM に Class オブジェクトが生成されます。クラスをロードすると次の操作が実行され、再帰的な説明が以下に与えられます。

クラスに親クラスがある場合は、その親クラスが最初にロードされます。

i このクラスの静的メンバーを初期化します

ii このクラスの静的コード ブロックを実行します

2 番目のステップ: オブジェクトの作成クラスに親クラスがある場合、オブジェクトの作成時に、最初にその親クラスのオブジェクトが作成され、サブクラスのプロパティとメソッドが外側の層でラップされ、次にサブクラスの参照が返されますが、再帰的に説明すると以下のようになります。

クラスに親クラスがある場合は、最初に親クラスのオブジェクトを作成します。

i このクラスの通常のメンバーを初期化します

ii 通常のコード ブロックを実行します

iii クラス構築メソッドを呼び出します

例:

このクラス オブジェクトはメンバー変数として使用されます

1

2

3

4

public class Info{    public Info(String s) {

        System.out.println(s);

    }

}

ログイン後にコピー

親クラス

1

2

3

4

5

6

7

8

9

10

11

12

13

public class Parent {

    public static Info info = new Info("Parent static member");      //静态成员

    public Info info2 = new Info("Parent common member");            //普通成员

    static {                                                         //静态代码块

        System.out.println("parent static block");

    }

    {                                                                //普通代码块

        System.out.println("parent common block");

    }

    public Parent() {                                                //父类构造方法

        System.out.println("Parent.Parent()");

    }

}

ログイン後にコピー

サブクラス

1

2

3

4

5

6

7

8

9

10

11

12

13

public class Child extends Parent{

    public static Info info = new Info("Child static member");       //静态成员

    public Info info2 = new Info("Child common member");             //普通成员

    static {                                                         //静态代码块

        System.out.println("Child static block");

    }

    {                                                                //普通代码块

        System.out.println("Child  common block");

    }

    public Child() {                                                 //子类构造方法

        System.out.println("Child.Child()");

    }

}

ログイン後にコピー

次のテスト クラスの読み込みプロセスでは、オブジェクトを作成せず、直接クラスを読み込み、サブクラスを読み込みます

1

2

3

4

5

6

7

8

9

10

11

12

public class InitObjectTest{

    public static void main(String[] args) {

        try{

            //Class.forName("Parent");

            Class.forName("Child");

        }catch(Exception e){

             

        }

        //System.out.println("=============== now , we create an Object below ===========");

        //new Parent();

    }

}

ログイン後にコピー

テスト結果:

Javaでオブジェクトを初期化する方法

テスト結果は、上記のクラスをロードするための規則に準拠しています。最初に親クラスの静的メンバーを初期化し、次に親クラスの静的ブロックを実行し、次にサブクラスの静的メンバーを初期化します。 、最後にサブクラスの静的ブロックを実行します。クラスがロードされると、静的メンバーが実際に初期化されることがわかります。

Note: クラスは 1 回だけロードされ、後でオブジェクトが作成されるとクラスはロードされなくなるため、静的コード ブロックは 1 回だけ実行されます。

推奨チュートリアル: Java 入門チュートリアル

以上がJavaでオブジェクトを初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート