zoukankan      html  css  js  c++  java
  • Java enum(枚举)使用详解之三

        DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

    用法一:常量

        在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

    Java代码
    1. public enum Color {  
    2.   RED, GREEN, BLANK, YELLOW  
    3. }  

    用法二:switch

        JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

    Java代码
    1. enum Signal {  
    2.     GREEN, YELLOW, RED  
    3. }  
    4. public class TrafficLight {  
    5.     Signal color = Signal.RED;  
    6.     public void change() {  
    7.         switch (color) {  
    8.         case RED:  
    9.             color = Signal.GREEN;  
    10.             break;  
    11.         case YELLOW:  
    12.             color = Signal.RED;  
    13.             break;  
    14.         case GREEN:  
    15.             color = Signal.YELLOW;  
    16.             break;  
    17.         }  
    18.     }  
    19. }  

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

        如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

    Java代码
    1. public enum Color {  
    2.     RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    3.     // 成员变量  
    4.     private String name;  
    5.     private int index;  
    6.     // 构造方法  
    7.     private Color(String name, int index) {  
    8.         this.name = name;  
    9.         this.index = index;  
    10.     }  
    11.     // 普通方法  
    12.     public static String getName(int index) {  
    13.         for (Color c : Color.values()) {  
    14.             if (c.getIndex() == index) {  
    15.                 return c.name;  
    16.             }  
    17.         }  
    18.         return null;  
    19.     }  
    20.     // get set 方法  
    21.     public String getName() {  
    22.         return name;  
    23.     }  
    24.     public void setName(String name) {  
    25.         this.name = name;  
    26.     }  
    27.     public int getIndex() {  
    28.         return index;  
    29.     }  
    30.     public void setIndex(int index) {  
    31.         this.index = index;  
    32.     }  
    33. }  

    用法四:覆盖枚举的方法

        下面给出一个toString()方法覆盖的例子。

    Java代码
    1. public enum Color {  
    2.     RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    3.     // 成员变量  
    4.     private String name;  
    5.     private int index;  
    6.     // 构造方法  
    7.     private Color(String name, int index) {  
    8.         this.name = name;  
    9.         this.index = index;  
    10.     }  
    11.     //覆盖方法  
    12.     @Override  
    13.     public String toString() {  
    14.         return this.index+"_"+this.name;  
    15.     }  
    16. }  

     

  • 相关阅读:
    [公告]Google个性化主页可以正常阅读博客园的RSS了
    致歉
    [公告]网站程序已经升级到ASP.NET 2.0
    GTF: Great Teacher Friedman
    Node.js : exports と module.exports の違い
    拨开历史的迷雾从篡夺者战争到五王之战的政经原因
    javascript模板系统 ejs v10
    window.name + postMessage实现不用代理页的跨域通信
    node.js Domain 時代のエラー処理のコーディングパターン
    鲜为人知的get,set操作符
  • 原文地址:https://www.cnblogs.com/cainiao-Shun666/p/6868586.html
Copyright © 2011-2022 走看看