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(); }}