<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Chan Chen Coding...

    Java 枚舉7常見種用法

    DK1.5引入了新的類型——枚舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。

    用法一:常量

    JDK1.5 之前,我們定義常量都是: public static fianl.... 。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法。

     

    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. }  
     

    用法五:實現接口

    所有的枚舉都繼承自java.lang.Enum類。由于Java 不支持多繼承,所以枚舉對象不能再繼承其他類。

     

    Java代碼  收藏代碼
    1. public interface Behaviour {  
    2.     void print();  
    3.     String getInfo();  
    4. }  
    5. public enum Color implements Behaviour{  
    6.     RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);  
    7.     // 成員變量  
    8.     private String name;  
    9.     private int index;  
    10.     // 構造方法  
    11.     private Color(String name, int index) {  
    12.         this.name = name;  
    13.         this.index = index;  
    14.     }  
    15. //接口方法  
    16.     @Override  
    17.     public String getInfo() {  
    18.         return this.name;  
    19.     }  
    20.     //接口方法  
    21.     @Override  
    22.     public void print() {  
    23.         System.out.println(this.index+":"+this.name);  
    24.     }  
    25. }  
     

    用法六:使用接口組織枚舉

     

    Java代碼  收藏代碼
    1. public interface Food {  
    2.     enum Coffee implements Food{  
    3.         BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
    4.     }  
    5.     enum Dessert implements Food{  
    6.         FRUIT, CAKE, GELATO  
    7.     }  
    8. }  
     

    用法七:關于枚舉集合的使用

    java.util.EnumSet和java.util.EnumMap是兩個枚舉集合。EnumSet保證集合中的元素不重復;EnumMap中的key是enum類型,而value則可以是任意類型。關于這個兩個集合的使用就不在這里贅述,可以參考JDK文檔。

    關于枚舉的實現細節和原理請參考:



    -----------------------------------------------------
    Silence, the way to avoid many problems;
    Smile, the way to solve many problems;

    posted on 2013-05-15 19:57 Chan Chen 閱讀(248) 評論(0)  編輯  收藏 所屬分類: Scala / Java

    主站蜘蛛池模板: 4444www免费看| 亚洲免费观看视频| 欧洲乱码伦视频免费| 亚洲欧洲国产成人精品| 日韩精品免费一级视频| 亚洲午夜成激人情在线影院| 亚洲大片免费观看| 亚洲免费中文字幕| 国产在线国偷精品产拍免费| 亚洲乱人伦中文字幕无码| 免费v片在线观看| 男女拍拍拍免费视频网站| 亚洲av无码一区二区乱子伦as| 免费国产黄网站在线观看视频 | 久久久久女教师免费一区| 亚洲精品成人网站在线观看| 久久免费精彩视频| 亚洲人成77777在线播放网站不卡| 国内大片在线免费看| 免费国产va在线观看| 人人狠狠综合久久亚洲婷婷| 小草在线看片免费人成视久网| 亚洲国产精品日韩在线观看| 美女被免费视频网站a国产| 一级特黄a大片免费| 亚洲人成在线观看| 日韩a级毛片免费观看| 岛国岛国免费V片在线观看| 亚洲黄色免费电影| 国产成人精品123区免费视频| 成人免费av一区二区三区| 亚洲成人一级电影| 亚洲成A人片在线观看中文| 日韩免费无码一区二区三区| 中文字幕亚洲码在线| 在线亚洲午夜理论AV大片| 免费精品国偷自产在线在线| 一级做a毛片免费视频| 亚洲国产精品成人久久久| 亚洲高清视频一视频二视频三| 99久久精品免费视频|