Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。
Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。
例如定义一个颜色的枚举类。
public enum Color { //三色素:红、绿蓝 RED, GREEN, BLUE; }
常用方法:
values() 返回枚举类中所有的值。
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。
public static void main(String[] args) { Color color = Color.BLUE; System.out.println(color); //获取三色素 Color[] colors = Color.values(); for (Color color1 : colors) { //查看索引 System.out.println(color1 + " at index" + color1.ordinal()); } // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException System.out.println(Color.valueOf("RED")); }
输出结果:
BLUE RED at index0 GREEN at index1 BLUE at index2 RED
总结:每个枚举都是通过 Class 在内部实现的,且所有的枚举值都是 public static final 的