一文でJAVAの列挙(enum)が分かります。
Javaエニュメレーションは特殊な種類で、一般的には一年の4つの季節、一年の12ヶ月、一週間の7日間、方向は東南西北などがあります。
Javaエニュメレーション類はenumキーワードで定義され、各定数はカンマを使って分割されます。
例えば、色を定義するエニュメレート・クラス。
使用例:
RED
内部クラスに列挙を使う
エニュメレート・クラスは、内部カテゴリにも宣言できます。
RED
すべての列挙はクラスを通して内部で実現され、すべての列挙値はpublic static finalです。
以上の列挙類Colorを内部クラスに転化して実現した:
for文を使ってエニュメレート・エレメントを反復できます。
RED
GREEN
BLUE
switchに列挙類を使う
列挙類はよくswitch文に使われます。
青
values()、ordinal()とvalueOf()の方法
エンム定義のエニュメレーション類は、java.lang.Enum類を引き継ぎ、java.lang.Seriableとjava.lang.com parableの2つのインターフェースを実現しました。
values()、ordinal()とvalueOf()の方法はjava.lang.Enum類にあります。 values()は、エニュメレーションクラスのすべての値を返します。 ordinal()方法は、配列インデックスのように、各列挙定数のインデックスを見つけることができる。 valueOf()メソッドは、指定された文字列値の列挙定数を返します。
RED at index 0
GREEN at index 1
BLUE at index 2
RED
エニュメレート・メンバー
エニュメレーションは普通のクラスと同じで自分の変数、方法、コンストラクションを使ってもいいです。コンストラクタはprvateを使って修飾子にしかアクセスできないので、外部からの呼び出しはできません。
列挙は具体的な方法を含むことができます。抽象的な方法も含まれます。エニュメレート・クラスが抽象的な方法を持っているなら、エニュメレート・クラスの各インスタンスはそれを実現しなければならない。
Costructor caled for:RED
Costructor caled for:GREEN
Costructor caled for:BLUE
RED
Universal Color
以上はJAVAエニュメレーションの詳しい内容が分かります。JAVAエニュメレーションに関する資料は他の関連記事に注目してください。
Javaエニュメレーション類はenumキーワードで定義され、各定数はカンマを使って分割されます。
例えば、色を定義するエニュメレート・クラス。
enum Color
{
RED, GREEN, BLUE;
}
以上のエニュメレート・クラスのColorの色定数は、RED、GREEN、BLUEであり、それぞれ赤、緑、青を表している。使用例:
enum Color
{
RED, GREEN, BLUE;
}
public class Test
{
//
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
以上のコード出力を実行した結果:RED
内部クラスに列挙を使う
エニュメレート・クラスは、内部カテゴリにも宣言できます。
public class Test
{
enum Color
{
RED, GREEN, BLUE;
}
//
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
以上のコード出力を実行した結果:RED
すべての列挙はクラスを通して内部で実現され、すべての列挙値はpublic static finalです。
以上の列挙類Colorを内部クラスに転化して実現した:
class Color
{
public static final Color RED = new Color();
public static final Color BLUE = new Color();
public static final Color GREEN = new Color();
}
エニュメレーション要素for文を使ってエニュメレート・エレメントを反復できます。
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
for (Color myVar : Color.values()) {
System.out.println(myVar);
}
}
}
以上のコード出力を実行した結果:RED
GREEN
BLUE
switchに列挙類を使う
列挙類はよくswitch文に使われます。
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
Color myVar = Color.BLUE;
switch(myVar) {
case RED:
System.out.println(" ");
break;
case GREEN:
System.out.println(" ");
break;
case BLUE:
System.out.println(" ");
break;
}
}
}
以上のコード出力を実行した結果:青
values()、ordinal()とvalueOf()の方法
エンム定義のエニュメレーション類は、java.lang.Enum類を引き継ぎ、java.lang.Seriableとjava.lang.com parableの2つのインターフェースを実現しました。
values()、ordinal()とvalueOf()の方法はjava.lang.Enum類にあります。
enum Color
{
RED, GREEN, BLUE;
}
public class Test
{
public static void main(String[] args)
{
// values()
Color arr[] = Color.values();
//
for (Color col : arr)
{
//
System.out.println(col + " at index " + col.ordinal());
}
// valueOf() , IllegalArgumentException
System.out.println(Color.valueOf("RED"));
// System.out.println(Color.valueOf("WHITE"));
}
}
以上のコード出力を実行した結果:RED at index 0
GREEN at index 1
BLUE at index 2
RED
エニュメレート・メンバー
エニュメレーションは普通のクラスと同じで自分の変数、方法、コンストラクションを使ってもいいです。コンストラクタはprvateを使って修飾子にしかアクセスできないので、外部からの呼び出しはできません。
列挙は具体的な方法を含むことができます。抽象的な方法も含まれます。エニュメレート・クラスが抽象的な方法を持っているなら、エニュメレート・クラスの各インスタンスはそれを実現しなければならない。
enum Color
{
RED, GREEN, BLUE;
//
private Color()
{
System.out.println("Constructor called for : " + this.toString());
}
public void colorInfo()
{
System.out.println("Universal Color");
}
}
public class Test
{
//
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
c1.colorInfo();
}
}
以上のコード出力を実行した結果:Costructor caled for:RED
Costructor caled for:GREEN
Costructor caled for:BLUE
RED
Universal Color
以上はJAVAエニュメレーションの詳しい内容が分かります。JAVAエニュメレーションに関する資料は他の関連記事に注目してください。