复杂枚举结构和简单枚举结构混合应用
混合枚举
1 package com.yeepay.sxf.euma; 2 /** 3 * 简单的数据结构和复杂的数据结构枚举 4 * @author sxf 5 * 6 */ 7 public enum Category { 8 /** 9 * 简单的枚举 10 */ 11 Memey("记忆大脑",WorkName.ONECLASS), 12 13 /** 14 * 复杂的枚举 15 */ 16 DORYS{ 17 @Override 18 public String findName() { 19 return "我是对的"; 20 } 21 }; 22 23 //变量名 24 private String name; 25 private WorkName workName; 26 27 //简单枚举的构造函数 28 private Category(String name,WorkName workName){ 29 this.name=name; 30 this.workName=workName; 31 } 32 33 //构造函数(复杂枚举结构构造函数) 34 private Category() { 35 36 } 37 38 39 //普通方法(复杂枚举结构方法可重写) 40 public String findName(){ 41 return ""; 42 } 43 44 public String getName() { 45 return name; 46 } 47 public void setName(String name) { 48 this.name = name; 49 } 50 public WorkName getWorkName() { 51 return workName; 52 } 53 public void setWorkName(WorkName workName) { 54 this.workName = workName; 55 } 56 57 58 59 }
其他枚举(其中看到的枚举,参考上一篇枚举博客)
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 public class Test { 5 public static void main(String[] args) { 6 test5(); 7 } 8 9 10 public static void test5(){ 11 //获取枚举中的一个值 12 String name=Category.Memey.getName(); 13 System.out.println("Test.test5(获取枚举对象中的一个值=>)"+name); 14 //获取枚举中的枚举 15 WorkName workName=Category.Memey.getWorkName(); 16 //获取枚举的名字 17 String descname=workName.getDesc(); 18 System.out.println("Test.test5(获取枚举的名字=>)"+descname); 19 //使用枚举中的方法 20 String abnameString=Category.DORYS.findName(); 21 System.out.println("Test.test5(使用结构枚举值==>)"+Category.DORYS.name()); 22 System.out.println("Test.test5(使用枚举中的方法==>)"+abnameString); 23 } 24 }
测试结果
Test.test5(获取枚举对象中的一个值=>)记忆大脑
Test.test5(获取枚举的名字=>)一班
Test.test5(使用结构枚举值==>)DORYS
Test.test5(使用枚举中的方法==>)我是对的