列举类综合应用   
               添加时间:2013-5-6 点击量: 
 
              一个列举类,可以算作包含它的一些子类(列举)的一个类,并且列举类的机关办法只能是私有的,如下面代码以交灯为示例:
 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4         Trafficlight light = Trafficlight.RED;
 5         
 6         System.out.println(light.time);
 7         System.out.println(light.nextLigth());
 8         // ordinal()办法返回列举声明的次序
 9         System.out.println(light.ordinal());
10         // values()办法获得所有列举类型的一个数组
11         for(Trafficlight light1:light.values()){
12             System.out.println(light1.name());
13         }
14         
15         // valueOf()办法可以把字符串转换成响应的列举对象
16         System.out.println(light.RED ==light.valueOf(RED));
17     }
18 
19     public enum Trafficlight {
20         GREEN(30) {
21 
22             @Override
23             public Trafficlight nextLigth() {
24                 return RED;
25             }
26         },
27         RED(30) {
28 
29             @Override
30             public Trafficlight nextLigth() {
31                 return YELLOW;
32             }
33         },
34         YELLOW(10) {
35 
36             @Override
37             public Trafficlight nextLigth() {
38                 return GREEN;
39             }
40         };
41         public abstract Trafficlight nextLigth();
42 
43         private int time;
44 
45         // 机关办法
46         private Trafficlight(int time) {
47             this.time = time;
48         }
49         
50         public int getTime(){
51             return time;
52         }
53 
54     }
55 
56 }
代码中,可以看到GREEN,RED,YELLOW,分别是Trafficlight的一个子类,并作为它的成员变量。在Trafficlight有一个抽象办法nextLight(),在子类中是必必要实现的,所以@Override,别的它们也持续了父类的办法,所以可以调用父类的办法 getTiime(),因为父类Trafficlight中声明一个有参数的机关办法覆盖了无参的机关办法,所以构建子类时也必必要加上参数。
  代码中light只是相当于一个父类的实例,用它可以获得各个成员变量的子类,调用各类办法,valueOf(String)办法可以将字符串转换成一个列举。
无论对感情还是对生活,“只要甜不要苦”都是任性而孩子气的,因为我们也不完美,我们也会伤害人。正因为我们都不完美,也因为生活从不是事事如意,所以对这些“瑕疵”的收纳才让我们对生活、对他人的爱变得日益真实而具体。—— 汪冰《世界再亏欠你,也要敢于拥抱幸福》
                     
                  
     
  
 
    
    
一个列举类,可以算作包含它的一些子类(列举)的一个类,并且列举类的机关办法只能是私有的,如下面代码以交灯为示例:
1 public class Test {
2
3 public static void main(String[] args) {
4 Trafficlight light = Trafficlight.RED;
5
6 System.out.println(light.time);
7 System.out.println(light.nextLigth());
8 // ordinal()办法返回列举声明的次序
9 System.out.println(light.ordinal());
10 // values()办法获得所有列举类型的一个数组
11 for(Trafficlight light1:light.values()){
12 System.out.println(light1.name());
13 }
14
15 // valueOf()办法可以把字符串转换成响应的列举对象
16 System.out.println(light.RED ==light.valueOf(RED));
17 }
18
19 public enum Trafficlight {
20 GREEN(30) {
21
22 @Override
23 public Trafficlight nextLigth() {
24 return RED;
25 }
26 },
27 RED(30) {
28
29 @Override
30 public Trafficlight nextLigth() {
31 return YELLOW;
32 }
33 },
34 YELLOW(10) {
35
36 @Override
37 public Trafficlight nextLigth() {
38 return GREEN;
39 }
40 };
41 public abstract Trafficlight nextLigth();
42
43 private int time;
44
45 // 机关办法
46 private Trafficlight(int time) {
47 this.time = time;
48 }
49
50 public int getTime(){
51 return time;
52 }
53
54 }
55
56 }
代码中,可以看到GREEN,RED,YELLOW,分别是Trafficlight的一个子类,并作为它的成员变量。在Trafficlight有一个抽象办法nextLight(),在子类中是必必要实现的,所以@Override,别的它们也持续了父类的办法,所以可以调用父类的办法 getTiime(),因为父类Trafficlight中声明一个有参数的机关办法覆盖了无参的机关办法,所以构建子类时也必必要加上参数。
代码中light只是相当于一个父类的实例,用它可以获得各个成员变量的子类,调用各类办法,valueOf(String)办法可以将字符串转换成一个列举。
无论对感情还是对生活,“只要甜不要苦”都是任性而孩子气的,因为我们也不完美,我们也会伤害人。正因为我们都不完美,也因为生活从不是事事如意,所以对这些“瑕疵”的收纳才让我们对生活、对他人的爱变得日益真实而具体。—— 汪冰《世界再亏欠你,也要敢于拥抱幸福》



