亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

枚舉

2019-11-14 10:08:54
字體:
來源:轉載
供稿:網友

enum 的特征

public enum ColorEnum { RED("紅色"), BLUE("藍色"), GREEN("綠色"), ; PRivate String description; private static Random random = new Random(4l); ColorEnum(String description){ this.description = description; } public String getDescription() { return description; } @Override public String toString(){ return "enum:" + this.name(); } public static ColorEnum next(){ return values()[random.nextInt(values().length)]; } public static void main(String[] args){ // 1.values() for(ColorEnum colorEnum : ColorEnum.values()) { // 2.name() 與 toString() System.out.print(colorEnum.name() + " "); System.out.print(colorEnum + " "); System.out.print(colorEnum.getDescription() + " "); // 3.ordinal() System.out.println(colorEnum.ordinal()); } ColorEnum colorEnum = ColorEnum.next(); // 4.valueOf() ColorEnum colorEnum1 = ColorEnum.valueOf(colorEnum.name()); // 5.單例,equals 和 == 結果相同 System.out.println(colorEnum == colorEnum1); System.out.println(colorEnum.equals(colorEnum1)); // 6.getDeclaringClass() System.out.println(colorEnum.getDeclaringClass()); // 7.compareTo() 聲明順序比較 System.out.println(colorEnum.compareTo(RED)); System.out.println(colorEnum.compareTo(BLUE)); System.out.println(colorEnum.compareTo(GREEN)); // 8.getEnumConstants() ColorEnum[] values = ColorEnum.class.getEnumConstants(); }}name() 一定返回枚舉定義時的名稱,toString 默認情況下與 name() 相同,但是在子類中 toString 可以覆蓋,而 name() 是 final 的。枚舉的實現是單例的,但是還是使用 equals 養成良好習慣。

神奇的 enum

將上一個例子編譯后的 .class 文件進行反編譯后,會看到一些有趣的問題:

Compiled from "ColorEnum.java"public final class lirui.ColorEnum extends java.lang.Enum<lirui.ColorEnum> { public static final lirui.ColorEnum RED; public static final lirui.ColorEnum BLUE; public static final lirui.ColorEnum GREEN; public static lirui.ColorEnum[] values(); public static lirui.ColorEnum valueOf(java.lang.String); public java.lang.String getDescription(); public static lirui.ColorEnum next(); public java.lang.String toString(); public static void main(java.lang.String[]); static {};}編譯器為類聲明添加了 final,并且繼承了 Enum 類,所以編寫枚舉類時不能在繼承其他類,但是可以實現接口。編譯器添加了 static final 的枚舉對象,這也是我們平時可以使用 ColorEnum.RED 獲取枚舉實例的原因。所以枚舉實現是單例的。編譯器添加了 values(),valueOf() 這兩個方法,而對于他的父類 Enum 也有一個valueOf(),不過兩者參數不同,并不是同一個方法。將 ColorEnum 向上轉型為 Enum 時,values() 方法將失效,但是可以使用 Class 上的 getEnumConstants() 獲取所有 enum 實例。

enum 的多態

Java 允許為 enum 實例編寫方法,可以為 enum 定義一個或多個 abstract 方法,然后為每個 enum 實例實現該抽象方法。public enum ColorEnum{ RED("紅色"){ public String getName(){ return "紅色"; } }, BLUE("藍色"){ public String getName(){ return "藍色"; } }, GREEN("綠色") { String getName() { return "綠色"; } }, ; private String description; private static Random random = new Random(4); abstract String getName(); ColorEnum(String description){ this.description = description; } public String getDescription() { return description; } @Override public String toString(){ return "enum:" + this.name(); } public static ColorEnum next(){ return values()[random.nextInt(values().length)]; } public static void main(String[] args){ for(ColorEnum colorEnum : ColorEnum.values()) { System.out.println(colorEnum.getName()); } }}還可以在enum 實例中覆蓋 enum 定義的方法。public enum ColorEnum{ RED("紅色"){ public String getName(){ return "紅色"; } }, BLUE("藍色"){ public String getName(){ return "藍色"; } }, GREEN("綠色") { public String getName() { return "綠色"; } }, ; private String description; private static Random random = new Random(4); public String getName(){ return "顏色"; } ColorEnum(String description){ this.description = description; } public String getDescription() { return description; } @Override public String toString(){ return "enum:" + this.name(); } public static ColorEnum next(){ return values()[random.nextInt(values().length)]; } public static void main(String[] args){ for(ColorEnum colorEnum : ColorEnum.values()) { System.out.println(colorEnum.getName()); } }}

switch 中使用 enum

public static String getName(ColorEnum colorEnum){ switch (colorEnum){ case RED: return "紅色"; case BLUE: return "藍色"; case GREEN: return "綠色"; default: return null; } }

EnumSet

EnumSet 是為了通過 enum 創建一種替代品,以替代傳統的基于 int 的 “位標志”,可以用來表示一些開關信息EnumSet 設計時充分考慮的性能,內部將一個 long 值作為比特向量,并且具有很好的表達能力。如果 enum 實例的數量超過了 64(long 的長度)個,會再增加一個 long 。

EnumMap

EnumMap 是一個特殊的 map, 他要求其中的鍵必須來自一個 enum。由于 enum 的數量有限,所以 Enum 內部可以使用數組實現,所以它的速度也非???。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩成人免费| 亚洲丝袜av一区| 亚洲japanese制服美女| 国产欧美最新羞羞视频在线观看| 久久成人人人人精品欧| 亚洲午夜女主播在线直播| 日韩国产高清污视频在线观看| 欧美美最猛性xxxxxx| 国产精品美女呻吟| 热99精品只有里视频精品| 国产日韩精品综合网站| 欧美一级片久久久久久久| 国产欧美一区二区三区视频| 亚洲精品久久久久| 日韩av在线不卡| 日韩精品高清在线观看| 中文字幕亚洲一区二区三区五十路| www.日韩.com| 色综合天天综合网国产成人网| 成人h视频在线观看播放| 伊人久久久久久久久久久久久| 欧美激情欧美激情在线五月| 岛国视频午夜一区免费在线观看| 精品呦交小u女在线| 91精品久久久久久久久久另类| 欧美午夜女人视频在线| 久久久免费观看视频| 亚洲区免费影片| 国产日韩综合一区二区性色av| 精品久久久久久久久久久| 久久久99久久精品女同性| 日韩精品中文在线观看| 国产69精品99久久久久久宅男| 国产精品激情av在线播放| 精品久久久久久中文字幕| 亚洲老头同性xxxxx| 欧美理论在线观看| 欧美专区在线播放| 欧美一乱一性一交一视频| 欧美日韩一区二区三区在线免费观看| 久久久久久成人精品| 91精品视频在线| 中文字幕亚洲国产| 日本精品免费一区二区三区| 日韩三级影视基地| 国产成人福利夜色影视| 91成品人片a无限观看| 91精品久久久久久久久久另类| 国产97在线|亚洲| 亚洲欧美日韩视频一区| 色先锋资源久久综合5566| 亚洲永久在线观看| 国产一区二区香蕉| 日本精品性网站在线观看| 国产精品久久不能| 国产精品私拍pans大尺度在线| 一个人看的www久久| 精品国产乱码久久久久久婷婷| 欧美刺激性大交免费视频| 91精品国产高清久久久久久91| 最近2019中文字幕一页二页| 国产又爽又黄的激情精品视频| 免费av一区二区| 亚洲a一级视频| 九九视频直播综合网| 最近2019年日本中文免费字幕| 欧美激情二区三区| 日韩精品在线第一页| 亚洲专区在线视频| 亚洲电影免费观看| 国产欧美精品日韩精品| 色妞在线综合亚洲欧美| 按摩亚洲人久久| 亚洲精品xxxx| 日韩乱码在线视频| 色阁综合伊人av| 国产一区玩具在线观看| 成人久久精品视频| 欧美精品videossex性护士| 国产日本欧美一区二区三区在线| 亚洲国产精彩中文乱码av| 欧美在线视频免费观看| 一区二区三区在线播放欧美| 欧美理论片在线观看| 欧美日产国产成人免费图片| 国产精品成人一区二区三区吃奶| 亚洲精品suv精品一区二区| 久久韩剧网电视剧| 成人激情综合网| 欧美一区二区大胆人体摄影专业网站| 亚洲毛茸茸少妇高潮呻吟| 亚洲人高潮女人毛茸茸| 精品日本美女福利在线观看| 日韩av在线直播| 亚洲欧美国产日韩中文字幕| 国内精品久久久久影院 日本资源| 久久国产加勒比精品无码| 国产一区二区黑人欧美xxxx| 91精品免费看| 日韩亚洲成人av在线| 在线观看日韩av| 丰满岳妇乱一区二区三区| 日本韩国欧美精品大片卡二| xvideos国产精品| 国产99久久精品一区二区 夜夜躁日日躁| 上原亚衣av一区二区三区| 丝袜情趣国产精品| 久久人人爽人人爽人人片av高请| 日韩av手机在线看| 性欧美暴力猛交69hd| 日韩欧美国产高清91| 久久久久久久久久久免费精品| 成人国产精品一区| 97精品国产97久久久久久免费| 欧美午夜久久久| 亚洲欧洲av一区二区| 亚洲精品wwwww| 欧美在线观看www| 亚洲成人久久电影| 久久理论片午夜琪琪电影网| 久久精品国产99国产精品澳门| 国产91精品黑色丝袜高跟鞋| 亚洲系列中文字幕| 国内精品久久久久影院 日本资源| 日韩av片免费在线观看| 18一19gay欧美视频网站| 亚洲欧美国产精品va在线观看| 日产日韩在线亚洲欧美| 亚洲精品视频在线播放| 欧美日本啪啪无遮挡网站| 久久精品免费播放| 中文字幕日韩高清| 日本精品免费观看| 日韩麻豆第一页| 亚洲女人天堂视频| 成人黄色在线播放| 久久不射热爱视频精品| 亚洲美女视频网站| 亚洲第一天堂av| 亚洲国产精品电影| 中文精品99久久国产香蕉| 久久久久国产一区二区三区| 亚洲高清一二三区| 欧美激情在线狂野欧美精品| 亚洲国产精品免费| 国内精品中文字幕| 在线播放国产一区中文字幕剧情欧美| 激情av一区二区| 欧美成人精品三级在线观看| 久久亚洲影音av资源网| 日韩精品视频免费在线观看| 中文字幕视频一区二区在线有码| 国产在线a不卡| 日韩精品亚洲元码| 日韩欧美aⅴ综合网站发布| 日韩av电影院| 日本成人在线视频网址| 久久九九精品99国产精品| 秋霞成人午夜鲁丝一区二区三区| 最近免费中文字幕视频2019| 午夜精品一区二区三区在线播放| 丝袜一区二区三区| 国语对白做受69| 中文字幕亚洲欧美日韩在线不卡|