static initializer 【Javaのサンプルコード】

Print Friendly, PDF & Email

ここでは、当社の新人研修受講者に向けて、Javaのサンプルコードを紹介しています。

static initializer

Javaのスタティックイニシャライザを使うと、インスタンスが生成された時に自動的に実行する処理が書けます。

基本情報処理技術者試験の過去問でも出たことがありました。

平成22年 秋期 基本情報技術者

このときは、インナークラスを初期化するという至極まっとうな使われ方をしていました。

以下のプログラムはやや強引にスタティックイニシャライザを説明するコードです。

数え年(生まれた年を1歳とする)を表現したプログラムです。

class Kazoe {

    public static void main(String args[]) {
        System.out.println("子供が生まれて" + EdonoKodomo.age + "歳になった。");
    }
}

class EdonoKodomo {

    static int age = 0;

    static {
        age++;
    }

}

なお、次のような問題も考えてみてください。

※以下のオラクル社のサイトを参考にしました。

public class InitializerTest {

    InitializerTest() {
        System.out.print("S ");
    }

    {
        System.out.print("I ");
    }

    public static void main(String[] args) {
        new InitializerTest().show();
    }

    void show() {
        System.out.print("A ");
    }

    static {
        System.out.print("T ");
    }
}