用途:
定义命令行参数,菜单选项,星期,方向(东西南北)等
与普通类的不同
有默认的方法 value()
每个enum类都已默认继承java.lang.Enum,所以enum类不能继承其他类
构造方法默认是package-private或private,会自动创建预定义的常量,所以你不需要也不能调用构造方法。
例子:
星期
1 public enum Weekend { 2 SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; 3 4 public static void main(String[] args) { 5 for (Weekend day : Weekend.values()) { 6 System.out.println(day); 7 } 8 } 9 }
方向
1 public enum Direction { 2 EAST("d"), WEST("a"), SOUTH("s"), NORTH("w"); // 用键盘上的wasd键代表方向 3 4 private String key; 5 6 private Direction(String key) { 7 this.key = key; 8 } 9 10 public String getKey() { 11 return key; 12 } 13 14 public static void main(String[] args) { 15 for (Direction d : Direction.values()) { 16 System.out.println("direction map:" + d.getKey()); 17 } 18 } 19 20 }
参考链接:
https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
https://docs.oracle.com/javase/8/docs/api/