枚举应用四

枚举抽象方法的定义使用

有抽象方法的枚举 《班级名字》

 1 package com.yeepay.sxf.euma;
 2 /**
 3  * 枚举间的结合使用
 4  * @author sxf
 5  */
 6 public enum WorkName {
 7     /**
 8      * 一班
 9      */
10     ONECLASS{
11     
12         @Override
13         public String[] getWorkNameAres() {
14             return new String[]{
15                     WorkNameAres.KONGTONGPAIYIBAN.getClassname(),
16                     WorkNameAres.WUDANGPAIYIBAN.getClassname()
17             };
18         }
19 
20         @Override
21         public String getDesc() {
22             return "一班" ;
23             
24         }
25 
26         @Override
27         public WorkType getType() {
28             return WorkType.YIBAN;
29         }
30         
31     },
32     
33     /**
34      * 二班
35      */
36     TWOCLASS{
37 
38         @Override
39         public String[] getWorkNameAres() {
40             
41             return new String[]{
42                     WorkNameAres.EMEIPAIHUOJIAN.getClassname(),
43                     WorkNameAres.SHAOLEIPAIHUOJIAN.getClassname()
44             };
45         }
46 
47         @Override
48         public String getDesc() {
49             return "二班";
50         }
51 
52         @Override
53         public WorkType getType() {
54             return WorkType.HUOJIAN;
55         }
56         
57         
58     }
59     ;
60     
61     /**
62      * 获取班级的具体名字
63      * @return
64      */
65     public abstract String[]  getWorkNameAres();
66     /**
67      * 获取详细名字
68      * @return
69      */
70     public abstract String getDesc();
71     /**
72      * 获取班级类型
73      * @return
74      */
75     public abstract WorkType getType();
76     
77 
78 }
View Code

《班级别名》

 1 package com.yeepay.sxf.euma;
 2 /**
 3  * 班级别名字
 4  * @author sxf
 5  *
 6  */
 7 public enum WorkNameAres {
 8 
 9     KONGTONGPAIYIBAN("崆峒派一班"),
10     WUDANGPAIYIBAN("武当派一班"),
11     SHAOLEIPAIHUOJIAN("少林派火箭班"),
12     EMEIPAIHUOJIAN("峨嵋派火箭班");
13     /**
14      * 枚举变量名
15      */
16     private String classname;
17     /**
18      * 枚举构造函数
19      * @param name
20      */
21     private WorkNameAres(String name){
22         this.classname=name;
23     }
24     public String getClassname() {
25         return classname;
26     }
27     public void setClassname(String classname) {
28         this.classname = classname;
29     }
30     
31     
32 
33 }
View Code

《班级类型》

 1 package com.yeepay.sxf.euma;
 2 /**
 3  * 班级类型
 4  * @author sxf
 5  *
 6  */
 7 public enum WorkType {
 8     YIBAN("普通班",1),
 9     HUOJIAN("火箭班",2);
10     
11     private String name;
12     private Integer number;
13     
14     private WorkType(String name,Integer number){
15         this.name=name;
16         this.number=number;
17     }
18 
19     public String getName() {
20         return name;
21     }
22 
23     public void setName(String name) {
24         this.name = name;
25     }
26 
27     public Integer getNumber() {
28         return number;
29     }
30 
31     public void setNumber(Integer number) {
32         this.number = number;
33     }
34     
35     
36 }
View Code

测试类

 1 public class Test {
 2     public static void main(String[] args) {
 3         test4();
 4     }
 5     
 6     
 7     public static void test4(){
 8         WorkName workName=WorkName.ONECLASS;
 9         //获取详细名字
10         String name=workName.getDesc();
11         System.out.println("Test.test4(班级类型的名字==>)"+name);
12         //获取别名
13         String[] ares=workName.getWorkNameAres();
14         for(int i=0;i<ares.length;i++){
15             System.out.println("Test.test4(班级类型的别名==>)"+ares[i]);
16         }
17         //获取类型
18         WorkType workType=workName.getType();
19         System.out.println("Test.test4(班级类型的名字==>)"+workType.getName());
20         System.out.println("Test.test4(班级类型的编号==>)"+workType.getNumber());
21     }
22 }    
View Code

测试结果

Test.test4(班级类型的名字==>)一班
Test.test4(班级类型的别名==>)崆峒派一班
Test.test4(班级类型的别名==>)武当派一班
Test.test4(班级类型的名字==>)普通班
Test.test4(班级类型的编号==>)1

原文地址:https://www.cnblogs.com/shangxiaofei/p/4728282.html