enum枚举类型
enum枚举类型
1、 简单的例子:
public enum Dana {
A,B,C,D
}
//在这里创建了一个名为Dana的枚举类型,它有四个具名值,由于枚举类型的实例是常量,因此按照命名惯例它们都用大写字母表示(有多个单词则用下划线连接)
public static void main(String[] args) {
Dana dana = Dana.A;
System.out.println(dana);
}
}
在创建enum时,编译器会自动添加一些有用的特性,比如,
它会创toString()方法,以便你可以很方便地显示某个enum实例的名字,上面打印出来的效果也是这个原理;
编译器还会创建ordinal()方法,用来表示某个特定enum常量的声明顺序;
以及static values()方法,用来在按照enum常量的声明顺序.产生由这些常量值构成的数组:
public class EnumOrder {
public static void main(String[] args) {
for (Dana dana : Dana.values()) {
System.out.println(dana + ",ordinal " + dana.ordinal());
}
}
}
2、 枚举在switch中的使用
switch 中的值类型只能为:byte ,short,char,int,String(在jdk1.7后也支持了),enum类型。
package enumDemo;
import enumDemo.Enum.test;
public class TestEnumAndSwitch {
test t;
public TestEnumAndSwitch(test t){
this.t = t;
}
public void describe(){
System.out.println("This TestEnumAndSwitch is ");
switch(t){
case NOT: System.out.println("not spicy at all");
break;
case MILD: System.out.println("=========1");
case MEDIUM: System.out.println("a little hot");
break;
case HOT: System.out.println("=========2");
case FLAMING: System.out.println("=========3");
default: System.out.println("maybe too hot");
}
}
public static void main(String[] args) {
TestEnumAndSwitch
t1 = new TestEnumAndSwitch(test.NOT),
t2 = new TestEnumAndSwitch(test.MEDIUM),
t3 = new TestEnumAndSwitch(test.HOT);
t1.describe();
t2.describe();
t3.describe();
}
}