高新技术——枚举
枚举是JDK1.5加入的新特性,可以认为是一个特殊的类,它的出现给我们变成带了很大的便利。
类名:java.lang.Enum
关键字:enum
定义枚举
以定义四个方向键为例,代码如下:
public enum Direction{
RIGHT, LEFT, UP, DOWN
}
注意点:
(1) 枚举是特殊的类,定义时要把class关键字替换为enum关键字。
(2) 按照规范,枚举出的成员要使用大写,并列举出所有的情况。
(3) 成员与成员之间要使用逗号(,)隔开,如果没有其它内容,最后一个成员后可不写任何符号。如果还有其它内容,最后一个成员后要使用分号(;)隔开。
使用枚举
我们已经知道如何定义枚举了,那么该怎样使用呢?非常简单,获取枚举的值只需要用以下格式就可以了:枚举名.成员名
举个例子:
enum Direction{
RIGHT, LEFT, UP, DOWN
}
public class Demo
{
public static void main(String[] args){
Direction dir = Direction.RIGHT;
System.out.println(dir);
}
}
打印结果:RIGHT
匿名子类
每一个枚举成员都是枚举的匿名子类。我们可以举一个例子来说明一下。我们都知道在玩游戏时,键盘上的“w”,“s”,“a”,“d”分别代表键盘的“上”,“下”,“左”,“右”键,我们就来使用枚举实现这个例子,代码如下:enum Direction{
RIGHT('d'){
public String toString(){
return String.format("%c是右键。", value);
}
},
LEFT('a'){
public String toString(){
return String.format("%c是左键。", value);
}
},
UP('w'){
public String toString(){
return String.format("%c是上键。", value);
}
},
DOWN('s'){
public String toString(){
return String.format("%c是下键。", value);
}
};
protected char value;
Direction(char value){
this.value = value;
}
public char value(){
return value;
}
}
public class Demo
{
public static void main(String[] args){
for(Direction dir : Direction.values()){
System.out.println(dir);
}
}
}
打印结果:
d是右键。
a是左键。
w是上键。
s是下键。