初期化ブロック

初期化ブロックとは

初期化ブロックはクラス内に定義するエリアで、
ここに定義した処理はコンストラクタよりも先に実行されます。

クラス内に複数のコンストラクタを定義する時に、
コンストラクタ間で共通の処理を行いたい時に便利です。

初期化ブロック構文

クラス内に波カッコ「{}」で囲んだエリアが初期化ブロックになります。

(初期化ブロック構文)
{  //処理 }
  • 1つのクラス内に初期化ブロックを複数定義することも可能です。
  • 初期化ブロックはクラス内のどこに定義してもOKです。

初期化ブロックサンプル

初期化ブロックを使用したサンプルです。

(例)初期化ブロックサンプル

public class Sample {
  //メンバ変数
  int a;

  //コンストラクタ1
  public Sample(){
  }

  //コンストラクタ2
  public Sample(int value){
    this.a = this.a * value;
  }

  //初期化ブロック
  {
    this.a = 99;
  }

}

上記Sampleクラスを引数なしでnewするとメンバ変数aは99になりますが、
引数ありでnewするとメンバ変数aは、a*引数で指定された値になります。

まとめ

  • コンストラクタの実行よりも先に実行される
  • コンストラクタをオーバーロードした時に、共通的な処理を記述できる
  • 波括弧「{}」で囲ったエリアが初期化ブロックになる
  • 初期化ブロックは複数記述可能。
    (その場合は上から順に実行されます。)

コメント

タイトルとURLをコピーしました