(Java)enum(列挙型)のまとめ

基本的にクラスと同じ扱い

enum Number{ ONE, TWO, THREE, FOUR, FIVE ;} //セミコロンは無くてもいい
public class Test {
	public static void main(String[] args) {}
	public enum Number2{ ONE2, TWO2, THREE2, FOUR2, FIVE2 ;}
}

クラスの外でも中でも宣言できる。

使い道

割とよく見る条件分岐を使った使用法。

enum Number{ONE, TWO, THREE, FOUR, FIVE}

public class Test{
	
	public static void main(String[] args) {
		System.out.println(returnNumber(Number.FOUR));
	}
	
	static int returnNumber(Number num){
		switch (num) {
		    case ONE:	return 1;
		    case TWO:	return 2;
		    case THREE: return 3;
		    case FOUR:	return 4;
		    case FIVE:	return 5;
		    default:	return 0;
		}
	}
}

出力

4

クラスちっくな使い道

enum Season{
	
	SPRING(1,"春"), Summer(2,"夏"), AUTUMN(3,"秋"), WINTER(4,"冬");
	
	private final int num;
	private final String kanji;
	
	Season(int num, String kanji) {
		this.num = num;
		this.kanji = kanji;
	}
	
	int getNum(){
		return num;
	}
	
	String getKanji(){
		return kanji;
	}
}

public class Test{
	public static void main(String[] args) {
		for(Season s : Season.values()){
			System.out.println(s.getNum() + ":" + s.getKanji());
		}
	}
}

出力

1:春
2:夏
3:秋
4:冬


enum、私は「いーなむ」という謎の読み方をしていましたが元々enumerateからきているようなので「エ(イ)ニューム」が正しい読みになりそうですね。