在Java中枚举和其他类一样,只是多了预定义的对象集合。下面几个例子强调如何使用Java的枚举。
1.简单例子
public enum Color {
RED, YELLOW, BLUE; //each is an instance of Color
}
public class Test {
public static void main(String[] args) {
for(Color color: Color.values()){
System.out.println(color);
}
}
}
输出:
RED
YELLOW
BLUE
2.有构造函数
public enum Color {
RED(1), YELLOW(2), BLUE(3); //each is an instance of Color
private int value;
private Color(){}
private Color(int i){
this.value = i;
}
//define instance method
public void printValue(){
System.out.println(this.value);
}
}
public class Test {
public static void main(String[] args) {
for(Color color: Color.values()){
color.printValue();
}
}
}
输出:
1
2
3
3.什么时候用Java枚举
枚举类型是特殊的数据类型,它让一个变量称为预定义常量。这个变量必须等于这些预定义值的一个。
一个好的应用实例是可以防止非法参数的可能性。举个例子,想下下面的方法:
public void doSomethingWithColor(int color);
此方法不明确,开发人员不知道用什么值。
如果你有枚举型的类Color ,有BLACK、RED等,方法变成:
public void doSomethingWithColor(Color color);
显然调用这个方法,更可读。