• 枚举应用五


    复杂枚举结构和简单枚举结构混合应用

    混合枚举

     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 }
    View Code

    其他枚举(其中看到的枚举,参考上一篇枚举博客)

     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 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 }
    View Code

    测试结果

    Test.test5(获取枚举对象中的一个值=>)记忆大脑
    Test.test5(获取枚举的名字=>)一班
    Test.test5(使用结构枚举值==>)DORYS
    Test.test5(使用枚举中的方法==>)我是对的

  • 相关阅读:
    获取配置文件
    微服务项目(1)
    string,stringbuffer,stringbuilder区别?
    异常
    IDEA结合Maven的profile构建不同开发环境(SpringBoot)
    出现org.springframework.beans.factory.NoSuchBeanDefinitionException 的解决思路
    Spring中的@Transactional(rollbackFor = Exception.class)属性详解
    Ubuntu安装飞鸽传输
    shell 创建带参数的命令方法
    python查询mysql中文乱码问题
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/4729429.html
Copyright © 2020-2023  润新知