枚举抽象方法的定义使用
有抽象方法的枚举 《班级名字》
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 }
《班级别名》
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 }
《班级类型》
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 }
测试类
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 }
测试结果
Test.test4(班级类型的名字==>)一班
Test.test4(班级类型的别名==>)崆峒派一班
Test.test4(班级类型的别名==>)武当派一班
Test.test4(班级类型的名字==>)普通班
Test.test4(班级类型的编号==>)1