14K的小短腿

导航

Chapter5_初始化与清理_enum关键字

  enum关键字虽然只是一个很小的特性,但是它在我们使用枚举类型时,可以很方便的处理。先举一个例子。

 1 enum Speciness{
 2     NOT, MILD, MEDIUM, HOT, FLAMING
 3 }
 4 
 5 public class test{
 6     public static void main(String args[]){
 7         Speciness howHot = Speciness.MEDIUM;
 8         System.out.println(howHot);
 9     }
10 }
MEDIUM

  可以看到,枚举类型也是一种特定的类型,可以创建这个类的实例,在这一点上它和其他的类并没有区别,但是枚举类型有几个实用 的特性。它会创建toString()方法,可以方便的显示某个枚举类型实例的常量值,另外还会创建ordinal()方法,表示某个枚举常量的声明顺序,以及static value()方法,按照枚举类型的创建顺序,产生由这些常量值构成的数组(还是枚举类型的)。

 1 enum Speciness{
 2     NOT, MILD, MEDIUM, HOT, FLAMING
 3 }
 4 
 5 public class test{
 6     public static void main(String args[]){
 7         for(Speciness s : Speciness.values())
 8             System.out.println(s + " " + s.ordinal());
 9     }
10 }

 1 NOT 0 2 MILD 1 3 MEDIUM 2 4 HOT 3 5 FLAMING 4 

  enum类型的另一个很有用的方式就是与switch语句相结合起来使用,根据不同的枚举类型来产生不同的行为。

 1 enum Nationality{
 2     Spain,Italy,France
 3 }
 4 
 5 public class test{
 6     Nationality n;
 7     String name;
 8     test(Nationality n, String name){
 9         this.n = n;
10         this.name = name;
11     }
12     public void describe(){
13         switch(this.n){
14             case France:
15                 System.out.println(name + ":paris");
16                 break;
17             case Italy:
18                 System.out.println(name + ":milan");
19                 break;
20             case Spain:
21                 System.out.println(name + ":madrid");
22                 break;
23             default:
24                 break;
25         
26         }
27     }
28     
29     public static void main(String args[]){
30         test 
31             t1 = new test(Nationality.Spain, "RMA"),
32             t2 = new test(Nationality.France, "PSG"),
33             t3 = new test(Nationality.Italy, "INTER");
34         t1.describe();
35         t2.describe();
36         t3.describe();
37     }
38 }

 1 RMA:madrid 2 PSG:paris 3 INTER:milan 

posted on 2017-08-15 09:51  14K的小短腿  阅读(135)  评论(0)    收藏  举报