枚舉類型的相關解析

首先建立枚舉類型的類對象。數組

 1 package lltse.base.enumdemo;
 2 
 3 public enum LevelEnum 
 4 {
 5     //建立枚舉對象,調用有參構造函數實例化
 6     PERFECT("優秀")
 7     {
 8         //實現抽象方法
 9         public int getNum()
10         {
11             return 5;
12         }
13     },
14     GOOD("良好")
15     {
16         //實現抽象方法
17         public int getNum()
18         {
19             return 4;
20         }
21     },
22     MID("中等")
23     {
24         //實現抽象方法
25         public int getNum()
26         {
27             return 3;
28         }
29     },
30     PASS("及格")
31     {
32         //實現抽象方法
33         public int getNum()
34         {
35             return 2;
36         }
37     },
38     NOPASS("不及格")
39     {
40         //實現抽象方法
41         public int getNum()
42         {
43             return 1;
44         }
45     };
46     
47     private String name;
48     
49     //枚舉無參構造函數
50     private LevelEnum()
51     {
52     }
53     
54     //枚舉有參構造函數
55     private LevelEnum(String name)
56     {
57         this.name = name;
58     }
59     
60     
61     public String getName()
62     {
63         return name;
64     }
65     
66     //枚舉抽象方法定義,要求建立對象的子類都須要實現該方法
67     public abstract int getNum();
68 }

 

其次是枚舉類型的測試類函數

 1 package lltse.base.enumdemo;
 2 
 3 public class EnumDemo 
 4 {
 5 
 6     public static void main(String args [])
 7     {
 8         testEnumLevel(LevelEnum.MID);
 9         
10         
11         //返回枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數爲零)。 
12         LevelEnum level1 = LevelEnum.PERFECT;
13         System.out.println(""+level1.ordinal());
14         
15         //返回帶指定名稱的指定枚舉類型的枚舉常量
16         System.out.println(LevelEnum.valueOf("GOOD").getName());
17         
18         //獲取枚舉類型的數組
19         LevelEnum [] enums = LevelEnum.values();
20         for(LevelEnum enum1 : enums)
21         {
22             System.out.println("name:>>>"+enum1.getName()+"num:>>>"+enum1.getNum());
23         }
24     }
25 
26     private static void testEnumLevel(LevelEnum level)
27     {
28         switch(level)
29         {
30             //此處可使用byte short int char enum 幾種數據類型
31             case PERFECT:
32                 //此處調用枚舉的getName方法獲取枚舉名稱,返回枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數爲零)。
33                 System.out.println(""+level.getName()+">>>"+level.getNum()+"***"+level.ordinal());
34                 break;
35             case GOOD:
36                 System.out.println(""+level.getName()+">>>"+level.getNum());
37                 break;
38             case MID:
39                 System.out.println(""+level.getName()+">>>"+level.getNum()+"***"+level.ordinal());
40                 break;
41             case PASS:
42                 System.out.println(""+level.getName()+">>>"+level.getNum());
43                 break;
44             case NOPASS:
45                 System.out.println(""+level.getName()+">>>"+level.getNum());
46                 break;
47             default:
48                 new RuntimeException("non");
49         }
50     }
51 }
相關文章
相關標籤/搜索