初期化ブロック

クラス生成時に行う処理は、コンストラクタに記述するのが一般的です。しかし、時によってはコンストラクタが動作する前に何か処理を行いたい場合があります。

そのような場合には初期化ブロックとよばれる文法を使います。クラス定義のすぐしたに、{ } で囲って中に処理を記述します。

ブロック内の処理がコントラクタより先に動作します。

 

static初期化ブロック

初期化ブロックが動作するのはインスタンス生成前です。クラスのstaticフィールドなどをもし初期化したい処理があるとすると、インスタンスの生成は行われませんので

初期化ブロックでは対応できません。そのような時は、static初期化ブロックを使います。 static {  } と囲い処理を記述すます。

 

 

サンプルプログラムは以下のようになります。実行される順番は、まずこのクラスがクラスローダによりロードされた時にstatic初期化ブロックが動作します。

その後、mainメソッドがJVMより起動されて、コンストラクタを呼ぼうとしていますが、コンストラクタが呼ばれる直前に

初期化ブロックの処理が先に動き、そのコンストラクタが動作します。

 

EFFECTIVE JAVA 第2版 (The Java Series)

新品価格
¥3,888から
(2014/9/1 22:19時点)