枚举类型是Java 5中新增特性。
enum Size {
LARGE("L"),
MEDIUM("M"),
SMALL("S");
private String abbreviation;
private Size(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getAbbreviation() {
return abbreviation;
}
}
枚举的构造器总是私有的, 可以省略 private 修饰符。
如果声明一个 enum 构造器 为 public 和 protected,会出现语法错误。
所有的枚举类型都是 Enum
类的子类。他们继承了这个类的许多方法。
其中最有用的是一个 toString
。
Size.MEDIUM.toString()
enum signal {
GREEN("G"), YELLOW("Y"), RED("R");
private String abbreviation;
signal(String abbreviation) {
this.abbreviation = abbreviation;
}
@Override
public String toString() {
return abbreviation;
}
}
public static void main(String[] args) {
System.out.println(signal.GREEN);
}
返回字符串 MEDIUM。
toString 的逆方法是静态方法 valueOf
。
- static Enum valueOf(class enumClass, String name)
返回给定类中有指定名字的枚举常量。 - String toString()
返回枚举常量名 - int ordinal()
返回枚举常量在 enum 声明中的位置。位置从0 开始计数 - int compateTo(E other)
如果枚举常量出现在 other 之前,返回一个负整数。
如果 this == other 则返回0;
否则返回一个正整数。