最新公告
  • 欢迎您光临极客文库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

    用法一:常量

    在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
    publicenum Color {  
     RED, GREEN, BLANK, YELLOW  

    }


    用法二:switch

    JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
    enum Signal {  
       GREEN, YELLOW, RED  
    }  
    publicclassTrafficLight {  
       Signal color = Signal.RED;  
       publicvoidchange(){  
           switch (color) {  
           case RED:  
               color = Signal.GREEN;  
               break;  
           case YELLOW:  
               color = Signal.RED;  
               break;  
           case GREEN:  
               color = Signal.YELLOW;  
               break;  
           }  
       }  
    }


    用法三:向枚举中添加新方法

    如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。
    publicenum Color {  
       RED(“红色”, 1), GREEN(“绿色”, 2), BLANK(“白色”, 3), YELLO(“黄色”, 4);  
       // 成员变量  
       private String name;  
       privateint index;  
       // 构造方法  
       privateColor(String name, int index) {  
           this.name = name;  
           this.index = index;  
       }  
       // 普通方法  
       publicstatic String getName(int index) {  
           for (Color c : Color.values()) {  
               if (c.getIndex() == index) {  
                   return c.name;  
               }  
           }  
           returnnull;  
       }  
       // get set 方法  
       public String getName() {  
           return name;  
       }  
       publicvoidsetName(String name) {  
           this.name = name;  
       }  
       publicintgetIndex() {  
           return index;  
       }  
       publicvoidsetIndex(int index) {  
           this.index = index;  
       }  

    }


    用法四:覆盖枚举的方法

    下面给出一个toString()方法覆盖的例子。
    publicenum Color {  
       RED(“红色”, 1), GREEN(“绿色”, 2), BLANK(“白色”, 3), YELLO(“黄色”, 4);  
       // 成员变量  
       private String name;  
       privateint index;  
       // 构造方法  
       privateColor(String name, int index){  
           this.name = name;  
           this.index = index;  
       }  
       //覆盖方法  
       @Override  
       public String toString(){  
           returnthis.index+“_”+this.name;  
       }  
    }


    用法五:实现接口

    所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。
    publicinterfaceBehaviour{  
       voidprint();  
       String getInfo();  
    }  
    publicenum Color implements Behaviour{  
       RED(“红色”, 1), GREEN(“绿色”, 2), BLANK(“白色”, 3), YELLO(“黄色”, 4);  
       // 成员变量  
       private String name;  
       privateint index;  
       // 构造方法  
       privateColor(String name, int index){  
           this.name = name;  
           this.index = index;  
       }  
       //接口方法  
       @Override  
       public String getInfo(){  
           returnthis.name;  
       }  
       //接口方法  
       @Override  
       publicvoidprint(){  
           System.out.println(this.index+“:”+this.name);  
       }  

    }


    用法六:使用接口组织枚举


    publicinterface Food {  
       enum Coffee implements Food{  
           BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
       }  
       enum Dessert implements Food{  
           FRUIT, CAKE, GELATO  
       }  
    }


    用法七:关于枚举集合的使用

    java.util.EnumSetjava.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。
    关于枚举的实现细节和原理请参考:《ThinkingInJava》第四版
      本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
      极客文库 » Java枚举(enum)七种常见的用法

      常见问题FAQ

      如果资源链接失效了怎么办?
      本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
      如果用户分享的资源与描述不符怎么办?
      可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
      如何分享个人资源获取赞助积分或其他奖励?
      本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
      如果您发现了本资源有侵权行为怎么办?
      及时联系客服QQ:2580505920,核实予以删除。

      Leave a Reply

      Hi, 如果你对这款资源有疑问,可以跟我联系哦!

      联系发布者

      Leave a Reply

      Hi, 如果你对这款资源有疑问,可以跟我联系哦!

      联系发布者
      • 102会员总数(位)
      • 3674资源总数(个)
      • 2本周发布(个)
      • 0 今日发布(个)
      • 136稳定运行(天)

      欢迎加入「极客文库」,成为原创作者从这里开始!

      立即加入 了解更多
      成为赞助用户享有更多特权立即升级