这是一个枚举类型: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