<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 閱讀(254) 評論(0)  編輯  收藏 所屬分類: Scala / Java

    主站蜘蛛池模板: 少妇亚洲免费精品| 免费在线观看a级毛片| 亚洲人成人77777网站不卡| 免费一级毛suv好看的国产网站| 可以免费观看的毛片| 亚洲国产精品人人做人人爱| 亚洲图片中文字幕| 97人妻精品全国免费视频| 丁香亚洲综合五月天婷婷| 亚洲国产精品综合久久网各| 国产午夜无码精品免费看动漫| 亚洲成av人片一区二区三区| 国产午夜亚洲精品不卡免下载| 美女视频黄a视频全免费| 亚洲精品国产福利一二区| 亚洲aⅴ无码专区在线观看春色| 国产福利在线观看永久免费| 免费在线观看理论片| 鲁死你资源站亚洲av| 女人被男人桶得好爽免费视频| 亚洲啪啪免费视频| 精品免费人成视频app| 亚洲精品中文字幕无乱码| 亚洲精品免费在线视频| 亚洲人成日本在线观看| 国产精品1024永久免费视频| 亚洲国产精品成人综合久久久| 在线天堂免费观看.WWW| 亚洲精品9999久久久久无码 | rh男男车车的车车免费网站| 亚洲无线码一区二区三区| 99久久免费国产精精品| 亚洲国产精品免费在线观看| 美女黄频免费网站| 亚洲永久无码3D动漫一区| 免费看少妇高潮成人片| 2020久久精品亚洲热综合一本| 好爽好紧好大的免费视频国产| 男女一边桶一边摸一边脱视频免费| 日本免费一区尤物| 99热在线日韩精品免费|