PHPerがJavaを触る機会をいただけたので備忘録として
enum型(列挙型)とは
複数の定数を一つのクラスとしてまとめておくことができる型。
enum型はクラスとして定義されるので、フィールドやメソッドも定義できる点が大きな特徴。
enumのインスタンス化は、enum内部で行う1回のみ。
これにより、enumの各インスタンスは、プログラムの中で1つであることが保証される。
なので、enumは定数として利用できる。
基本の書式
enumTest.java
public enum enum型名 {
定数1,
定数2,
定数3
}
初期値に数字や文字列の値を定義する場合は、以下のようにフィールドやコンストラクタの定義を行う。
数値の値を定義する場合
enumSports.java
public enum Sports {
BaseBall(0),
Tennis(1),
HandBall(2),
private int id; //フィールドを定義
private Sports(int id) {
this.id = id;
}//コンストラクタの定義
}
文字列の値を定義する場合
enumFoods.java
public enum Foods {
Potato("Hokkaido"),
Tomato("Kumamoto"),
Spinach("Chiba"),
private String prefecture; //フィールドを定義
private Foods(String prefecture) {
this.prefecture = prefecture;
}//コンストラクタの定義
}
enum型を使用する際は、クラスのメソッドのように、enum型名.定義名と記載する
Javaのenumを使いたい場合
- 定数の種類・数を明確にしたい時
- 戻り値を明確化してプログラムの安全性・確実性を高めたい時