Javaでインスタンスの初期化と静的初期化を実装する方法

PHPz
リリース: 2023-06-02 18:17:39
転載
1200 人が閲覧しました

    #Java コード初期化ブロックは、Java 言語における非常に重要な概念です。オブジェクトが作成されると、初期化ブロックは、オブジェクトの初期状態の設定やメンバー変数の初期化など、いくつかの必要な操作を実行します。初期化ブロックは、インスタンス初期化ブロックと静的初期化ブロックの 2 つのタイプに分類されます。

    インスタンス初期化ブロックは、オブジェクトの作成時に実行され、新しいオブジェクトが作成されるたびに実行されます。インスタンス変数の初期化など、オブジェクトの作成時に必要な操作を実行するために使用される、これはインスタンス初期化ブロックです。以下に例を示します。

    public class Example {
        private int var1;
        private String var2;
    
        // 实例初始化块
        {
            var1 = 10;
            var2 = "Hello, world!";
        }
    
        public Example() {
            System.out.println("Constructor");
        }
    }
    ログイン後にコピー

    以下に示すように、Example クラスを定義し、その中にインスタンス初期化ブロックを追加します。 Example オブジェクトを作成すると、インスタンス初期化ブロックが実行され、var1 と var2 の初期値が設定されます。

    クラスの静的初期化ブロックは、クラスがロードされるときと、クラス コンストラクターが呼び出される前に 1 回だけ実行されます。静的変数の初期化は、クラスがロードされるときに、関連する操作を実行するために使用される静的初期化ブロックを通じて実現できます。以下は例です:

    public class Example {
        private static int var1;
        private static String var2;
    
        // 静态初始化块
        static {
            var1 = 20;
            var2 = "Goodbye, world!";
        }
    
        public static void main(String[] args) {
            System.out.println(var1);
            System.out.println(var2);
        }
    }
    ログイン後にコピー
    ログイン後にコピー

    上記のコードで Example クラスを定義し、静的初期化ブロックを追加しました。 Example クラスで main メソッドを実行すると、静的初期化ブロックが実行され、var1 と var2 の初期値を設定するために使用されます。

    インスタンス初期化ブロックと静的初期化ブロックは、Java では非常に重要な概念です。これらは、変数の初期化、前処理など、必要な操作を実行するために使用できます。以下では、インスタンスの初期化と静的初期化のプロセスを詳しく紹介します。

    1. インスタンスの初期化

    インスタンスの初期化ブロックは、オブジェクトの作成時に実行され、新しいオブジェクトが作成されるたびに実行されます。クラスでは、インスタンス初期化ブロックを使用して、インスタンス変数に初期値を割り当てることができます。

    1.1 インスタンス初期化プロセス

    次は、インスタンス初期化ブロックの実行プロセスを示す例です。

    public class Example {
        private int var1;
        private String var2;
    
        // 实例初始化块
        {
            var1 = 10;
            var2 = "Hello, world!";
        }
    
        public Example() {
            System.out.println("Constructor");
        }
    
        public static void main(String[] args) {
            Example e = new Example();
        }
    }
    ログイン後にコピー

    上記のコード スニペットで Example クラスを作成しました。インスタンス初期化ブロックが追加されます。 main メソッドでは、Example オブジェクトを作成します。インスタンス初期化ブロックはオブジェクトの作成時に実行され、var1 と var2 の初期値を設定するために使用されます。

    1.2 インスタンス初期化の順序

    コンストラクター内のすべての操作の後、インスタンス初期化ブロックの実行順序はその前になります。以下は、インスタンス初期化ブロックとコンストラクターの実行シーケンスを示す例です。

    public class Example {
        private int var1;
        private String var2;
    
        // 实例初始化块
        {
            System.out.println("Instance Initialization Block");
            var1 = 10;
            var2 = "Hello, world!";
        }
    
        public Example() {
            System.out.println("Constructor");
        }
    
        public static void main(String[] args) {
            Example e = new Example();
        }
    }
    ログイン後にコピー

    上記のコードで Example クラスを定義し、インスタンス初期化ブロックとコンストラクターを追加します。 main メソッドでは、Example オブジェクトを作成します。

    プログラムを実行すると、インスタンス初期化ブロックの出力がコンストラクターの前にあることがわかります。これは、インスタンス初期化ブロックが実際にコンストラクターの前に実行されることを証明します。

    1.3 インスタンス初期化に関する注意事項

    インスタンス初期化ブロックでは、インスタンス変数にアクセスできます。ただし、インスタンス初期化ブロック内の静的変数またはメソッドへのアクセスは許可されません。静的変数または静的メソッドは、インスタンス初期化ブロック内のクラス名によって参照できます。

    2. 静的初期化

    静的初期化ブロックは、クラスのロード時に実行され、クラス コンストラクターの呼び出しに先立って 1 回だけ実行されます。クラスでは、静的初期化ブロックを使用して静的変数に初期値を割り当てることができます。

    2.1 静的初期化プロセス

    次は、静的初期化ブロックの実行プロセスを示す例です。

    public class Example {
        private static int var1;
        private static String var2;
    
        // 静态初始化块
        static {
            var1 = 20;
            var2 = "Goodbye, world!";
        }
    
        public static void main(String[] args) {
            System.out.println(var1);
            System.out.println(var2);
        }
    }
    ログイン後にコピー
    ログイン後にコピー

    サンプル クラスを定義し、それに静的初期化を追加します。コードの先頭にあるブロック。 mainメソッドではvar1とvar2の値を出力しています。

    プログラムを実行すると、静的初期化ブロックの出力が main メソッドの前に発生することがわかります。これは、クラスがロードされるときに静的初期化ブロックが実際に実行されることを証明します。

    2.2 静的初期化の順序

    コード内に出現する順序によって、静的初期化ブロックと静的変数の初期化順序が決まります。以下に、静的初期化ブロックと静的変数の初期化シーケンスを示す例を示します。

    public class Example {
        private static int var1 = 10;
        private static String var2;
    
        // 静态初始化块
        static {
            System.out.println("Static Initialization Block");
            var2 = "Hello, world!";
        }
    
        public static void main(String[] args) {
            System.out.println(var1);
            System.out.println(var2);
        }
    }
    ログイン後にコピー

    上記のコードでは、Example という名前のクラスを宣言し、その中に静的変数と静的初期化ブロックを追加しました。 mainメソッドではvar1とvar2の値を出力しています。

    静的変数が初期化されるまで、静的初期化ブロックの出力は実行されないことがわかります。これは、静的変数が初期化された後に静的初期化ブロックが実際に実行されることを証明します。

    2.3 静的初期化に関する注意事項

    静的初期化ブロックでは、静的変数とメソッドにアクセスできます。ただし、静的初期化ブロック内のインスタンス変数またはメソッドへのアクセスは許可されません。インスタンス変数またはメソッドを使用するには、オブジェクト参照を作成し、それを静的初期化ブロックに置きます。

    以上がJavaでインスタンスの初期化と静的初期化を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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