枚举
从 JDK 5 开始, 枚举被添加到了 Java 语言中, 和其它语言中的描述相似, 但是这种相似只是表面上的.
枚举的基础知识
创建枚举需要使用 enum 关键字, 例如:
enum Apple {
Jonathan, GoldenDel, RedDel, Winesap, Cortland
}
标识符 Jonathan, GoldenDel 等被称为枚举常量. 每个枚举常量被隐式声明为 Apple 的公有,静态 final 成员.
此外, 枚举常量的类型是声明它们的枚举类型, 对于这个例子为 Apple.
定义了枚举之后, 可以创建枚举类型的变量. 但是, 尽管枚举定义了类类型, 却不能使用 new 实例化枚举. 反而, 枚举变量的声明和使用方式在许多方面与基本类型相同.
下面这行代码将 ap 声明为 Apple 枚举类型的变量:
Apple ap;
因为 ap 是 Apple 类型, 所以只能被赋值为(或包含)在 Apple 枚举中定义的那些值.
例如, 下面这行代码将 ap 赋值为 RedDel;
ap = Apple.RedDel;
可以使用关系运算符 == 比较两个枚举常量的相等性. 例如, 下面这条语句比较 ap 的值和 GoldenDel 常量:
if (ap == Apple. GoldenDel) // ...
枚举值也可以用于控制 switch 语句. 当然, 所有的 case 语句使用的常量的枚举类型, 都必须与 switch 表达式使用的枚举类型相同.
switch (ap) {