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 

转载于:https://www.cnblogs.com/buaa-zzy/p/7363490.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值