列挙型
JavaはJava SE (J2SE) version 5.0から列挙型を導入した。
Javaの型システムは、整数から分離された型として列挙を扱うが、(ordinal()メソッドを使用してenum値の整数表現を取得できることを除き)enumと整数値との混合演算は許されていない。実際には、Javaのenum型は現に、数値型というよりもむしろ、コンパイラによって生成された特殊なクラスである。enum値はそのクラスのあらかじめ生成されたグローバルなインスタンスとして振る舞う。enum型はインスタンスメソッドとコンストラクタ(引数が各々のenum値を分割指定できる)を持つ。全てのenum型は暗黙のうちにEnum抽象クラスを継承している。enum型を直接インスタンス化することは許可されない。各列挙型には、静的メソッドvalues()が暗黙的に定義され、列挙型に含まれるすべての定数の集合を配列として取得することができる。