Tigerから実装された列挙型のクラスjava.lang.Enumを使ってみる

Enum型は安全な列挙型を実現するためのクラスで、このクラス型は言語仕様にも組み込まれている。

Enum型もJava にとっては他のクラスと同様に Object 型を基本とするクラスにすぎません。
でも、Enum型は言語仕様に組み込まれているため、Enumクラスを継承して同行するような
面倒なコードを記述する必要ない。
enum キーワードに続いて定数を列挙するだけで、新しい列挙型を宣言することができます。


public enum HogeEnum {
   …
   …
}

こんな感じ!

Enum型のメンバは、数値とかの定数じゃなく、全てが static な Enum 型を実装するオブジェクトです。
Enum オブジェクトは内部に name() メソッドを保有し、自分自身を識別する文字列を返す。
同様に、オーバーライドされない限り toString() メソッドが返す値も name() メソッドと同じー !

ex)
[Enumクラス]
public enum HogeEnum {
HOGE_TEST1,HOGE_TEST2,HOGE_TEST3,HOGE_TEST4,HOGE_TEST5
}

[Mainクラス]
public class Test {
public static void main(String args[]) {
System.out.println(HogeEnum.HOGE_TEST1);
System.out.println(HogeEnum.HOGE_TEST2);
System.out.println(HogeEnum.HOGE_TEST3);
System.out.println(HogeEnum.HOGE_TEST4);
System.out.println(HogeEnum.HOGE_TEST5);
}
}

[実行結果]
HOGE_TEST1
HOGE_TEST2
HOGE_TEST3
HOGE_TEST4
HOGE_TEST5

自身のname()メソッドにより上記のように値が返ってきて表示される。