ホームページ >Java >&#&チュートリアル >Java はクラスとインターフェイスをどのように初期化しますか?また、初期化の順序は何ですか?

Java はクラスとインターフェイスをどのように初期化しますか?また、初期化の順序は何ですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-14 01:23:10169ブラウズ

How Does Java Initialize Classes and Interfaces, and What's the Order of Initialization?

Java の初期化とインスタンス化の順序

インターフェイスの初期化の明確化

インターフェイスの初期化の順序は、 JLS。ただし、クラスの初期化とオブジェクトの初期化を区別することが重要です。

クラスの初期化

クラスまたはインターフェイスは、次の場合にのみ初期化されます。そのクラスのオブジェクトが作成されたときではなく、最初にアクセスされたとき。初期化プロセスには次のものが含まれます。

  • コンパイル時の定数フィールドへの値の割り当て
  • スーパークラスの再帰的初期化 (まだ初期化されていない場合)
  • 静的初期化子と静的フィールドの処理(コンパイル時の定数ではありません)

インターフェースは、最初にアクセスされたときに、通常はコンパイル時定数ではないフィールドを読み取ることによって初期化されます。このアクセスはイニシャライザの評価中に発生し、再帰的な初期化につながる可能性があります。

オブジェクトの初期化

オブジェクトは、新しいインスタンスの作成時に初期化されます。初期化プロセスには次のものが含まれます。

  • コンストラクター引数をパラメーター変数に割り当てる
  • スーパークラス コンストラクターを (明示的または暗黙的に) 呼び出す
  • インスタンス初期化子の実行とインスタンスへの値の割り当てソースコード順に変数
  • コンストラクターを実行するbody

super() コンストラクター呼び出しの役割

スーパー コンストラクターへの明示的な呼び出しは、初期化の順序を変更しません。どのスーパークラス コンストラクターを呼び出すかを指定するだけです。

以上がJava はクラスとインターフェイスをどのように初期化しますか?また、初期化の順序は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。