- 枚举其实就是特殊的常量类,构造方法强制为 private,所以可以省略该修饰符;
《阿里巴巴 Java 开发手册》建议枚举类名带上 Enum 尾缀;
public enum Size {SMALL("S"), MEDIUM("M"), LARGE("L");private final String abbreviation;// 可以省略 private 修饰符Size(String abbreviation) {this.abbreviation = abbreviation;}public String getAbbreviation() {return abbreviation;}}
枚举类都继承自
Enum类,因此都是Enum类的子类。因此,所有枚举类都实现了Comparable和Serializable接口;public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { ... }Enum类还提供了valueOf()、values()、ordinal()、name()、toString()等实用方法。 ```java Size medium = Size.valueOf(“MEDIUM”);
Size[] values = Size.values();
Size.SMALL.ordinal(); // 0 Size.MEDIUM.ordinal(); // 1
Size.SMALL.name(); // SMALL
Size.SMALL.toString(); // SMALL
``
注意ordinal()返回的 index 从 0 开始,name()和toString()` 等效。
