Java 列挙型
Java 列挙型
このチュートリアルでは、Java の列挙型について学習します。例の助けを借りて、列挙型と列挙型クラスを作成して使用する方法を学びます.
Java では、列挙型 (enumeration の略) は定数値の固定セットを持つ型です。 enum
を使用します 列挙型を宣言するキーワード。たとえば、
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
ここでは、Size という名前の列挙型を作成しました。 .固定値 SMALL が含まれます 、中 、大 、および特大 .
中括弧内のこれらの値は、列挙型定数 (値) と呼ばれます。
注: 列挙型定数は通常、大文字で表されます。
例 1:Java 列挙型
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Main {
public static void main(String[] args) {
System.out.println(Size.SMALL);
System.out.println(Size.MEDIUM);
}
}
出力
SMALL MEDIUM
上記の例からわかるように、列挙名を使用して定数値にアクセスします。
また、列挙型の変数を作成することもできます。たとえば、
Size pizzaSize;
こちら、pizzaSize Size の変数です タイプ。 4 つの値のみを割り当てることができます。
pizzaSize = Size.SMALL;
pizzaSize = Size.MEDIUM;
pizzaSize = Size.LARGE;
pizzaSize = Size.EXTRALARGE;
例 2:switch ステートメントを使用した Java Enum
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
class Test {
Size pizzaSize;
public Test(Size pizzaSize) {
this.pizzaSize = pizzaSize;
}
public void orderPizza() {
switch(pizzaSize) {
case SMALL:
System.out.println("I ordered a small size pizza.");
break;
case MEDIUM:
System.out.println("I ordered a medium size pizza.");
break;
default:
System.out.println("I don't know which one to order.");
break;
}
}
}
class Main {
public static void main(String[] args) {
Test t1 = new Test(Size.MEDIUM);
t1.orderPizza();
}
}
出力
I ordered a medium size pizza.
上記のプログラムでは、列挙型 Size を作成しました。 .次に、変数 pizzaSize を宣言しました サイズの タイプしてください。
ここで、変数 pizzaSize 4 つの値のみを割り当てることができます (SMALL 、中 、大 、特大 ).
声明に注目してください、
Test t1 = new Test(Size.MEDIUM);
Test()
を呼び出します Test 内のコンストラクター クラス。さて、変数 pizzaSize MEDIUM が割り当てられています
値に基づいて、switch case ステートメントのいずれかのケースが実行されます。
Java の列挙型クラス
Java では、列挙型は特別な型のクラスと見なされます。 Java 5 のリリースで導入されました。
enum クラスには、通常のクラスと同様にメソッドとフィールドを含めることができます。
enum Size {
constant1, constant2, …, constantN;
// methods and fields
}
enum クラスを作成すると、コンパイラは各 enum 定数のインスタンス (オブジェクト) を作成します。また、すべての列挙型定数は常に public static final
です
例 3:Java Enum クラス
enum Size{
SMALL, MEDIUM, LARGE, EXTRALARGE;
public String getSize() {
// this will refer to the object SMALL
switch(this) {
case SMALL:
return "small";
case MEDIUM:
return "medium";
case LARGE:
return "large";
case EXTRALARGE:
return "extra large";
default:
return null;
}
}
public static void main(String[] args) {
// call getSize()
// using the object SMALL
System.out.println("The size of the pizza is " + Size.SMALL.getSize());
}
}
出力
The size of the pizza is small
上記の例では、enum クラス Size を作成しました。 . 4 つの定数 SMALL があります 、中 、大 そして特大 .
サイズ以来 が列挙型クラスの場合、コンパイラは各列挙型定数のインスタンスを自動的に作成します。
ここの main()
の中 メソッドでは、インスタンス SMALL を使用しました getSize()
を呼び出す メソッド。
注意 :通常のクラスと同様に、enum クラスにもコンストラクターを含めることができます。詳細については、Java enum コンストラクターにアクセスしてください。
Java Enum クラスのメソッド
enum クラスには、すぐに使用できる定義済みのメソッドがいくつかあります。
1. Java列挙序数()
ordinal()
メソッドは列挙型定数の位置を返します。たとえば、
ordinal(SMALL)
// returns 0
2.列挙型compareTo()
compareTo()
メソッドは、序数値に基づいて列挙定数を比較します。たとえば、
Size.SMALL.compareTo(Size.MEDIUM)
// returns ordinal(SMALL) - ordinal(MEDIUM)
3.列挙 toString()
toString()
メソッドは、列挙定数の文字列表現を返します。たとえば、
SMALL.toString()
// returns "SMALL"
4.列挙名()
name()
メソッドは、列挙定数の定義された名前を文字列形式で返します。 name()
からの戻り値 メソッドは final
です .たとえば、
name(SMALL)
// returns "SMALL"
5. Java Enum valueOf()
valueOf()
メソッドは文字列を受け取り、同じ文字列名を持つ列挙定数を返します。たとえば、
Size.valueOf("SMALL")
// returns constant SMALL.
6.列挙値()
values()
メソッドは、すべての列挙型定数を含む列挙型の配列を返します。たとえば、
Size[] enumArray = Size.value();
Java Enum を使用する理由
Java では、int 定数の使用を置き換えるために enum が導入されました .
int
のコレクションを使用したとします。
class Size {
public final static int SMALL = 1;
public final static int MEDIUM = 2;
public final static int LARGE = 3;
public final static int EXTRALARGE = 4;
}
ここで、定数を出力すると問題が発生します。これは、数字だけが印刷されているため、役に立たない可能性があります.
したがって、int 定数を使用する代わりに、単純に列挙型を使用できます。たとえば、
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
これにより、コードがより直感的になります。
また、enum はコンパイル時のタイプ セーフを提供します .
Size の変数を宣言すると タイプ。たとえば、
Size size;
ここでは、変数が 4 つの値のいずれかを保持することが保証されています。ここで、これら 4 つの値以外の値を渡そうとすると、コンパイラはエラーを生成します。
Java