這是一個枚舉類型:java
package enu; public enum Enum1 { NOT, MILD, MEDIUM, HOT, FLAMING }
枚舉類型的實例是常量,所以按照命名慣例來它們都是用大寫字母表示的。(若是在一個名字中有多個單詞,用下劃線將它們隔開)數組
看一下enum的使用this
package enu; public class SimpleEnumUse { public static void main(String[] args) { Enum1 e1 = Enum1.MEDIUM; System.out.println(e1); } }
將Enum的值賦給某個實例。
當你建立enum時,它會建立toString()方法。編譯器還會建立ordinal() 方法用來表示某個特定的enum常量的聲明順序,以及static values()方法
用來按照enum的聲明順序,產生由這些常量構成的數組。
enum其實是一種類,而且擁有本身的方法spa
用ordinal() 返回enum中的常量:code
package enu; public class Enum2 { public static void main(String[] args) { for (Enum1 e : Enum1.values()) { System.out.println(e + ".ordinal " + e.ordinal()); } } }
package enu; public class Enum3 { Enum1 degree; public Enum3(Enum1 degree) { this.degree = degree; } public void describe() { System.out.println("this Enum1 is"); switch (degree) { case NOT: System.out.println("not spicy at all"); break; case MILD: case MEDIUM: System.out.println("a little hot"); break; case HOT: case FLAMING: System.out.println("maybe too hot"); break; default: break; } } public static void main(String[] args) { Enum3 plain = new Enum3(Enum1.NOT); Enum3 greenChile = new Enum3(Enum1.MEDIUM); Enum3 jalapeno = new Enum3(Enum1.HOT); plain.describe(); greenChile.describe(); jalapeno.describe(); } }
輸出:編譯器
this Enum1 is
not spicy at all
this Enum1 is
a little hot
this Enum1 is
maybe too hotit