1. ホーム
  2. java

[解決済み] インスタンス・イニシャライザーとコンストラクターはどう違うのですか?

2023-05-14 03:01:30

質問

言い換えると、なぜインスタンス・イニシャライザが必要なのでしょうか?また、インスタンス・イニシャライザを書くことで、コンストラクタとどのような違いや利点があるのでしょうか。

どのように解決するのですか?

これでうまく説明できそうです。

インスタンス初期化子は、インスタンス変数 初期化子の代わりになります。

  • 初期化子のコードが例外をキャッチする必要がある、または

  • インスタンス変数のイニシャライザでは表現できないような派手な計算を実行する。 もちろん、このようなコードは常に コンストラクタに書くこともできます。

しかし、複数のコンストラクタを持つクラスでは、各コンストラクタでコードを繰り返さなければなりません。インスタンスイニシャライザを使えば 一度だけコードを書けば、どのコンストラクタでオブジェクトを作成しても実行されます。 オブジェクトを作成するコンストラクタに関係なく実行されます。インスタンスイニシャライザは コンストラクタを宣言できない匿名内部クラスでも有用です。 コンストラクタを全く宣言できない

From JavaWorld Javaにおけるオブジェクトの初期化 .