枚举类型使用
一個博客: https://blog.csdn.net/javazejian/article/details/71333103
阿里開發規范:
【參考】枚舉類名建議帶上 Enum 后綴,枚舉成員名稱需要全大寫,單詞間用下劃線隔開。
說明: 枚舉其實就是特殊的類, 域成員均為常量, 且構造方法被默認強制是私有。
正例: 枚舉名字為 ProcessStatusEnum 的成員名稱: SUCCESS / UNKNOWN_REASON。
【強制】所有的枚舉類型字段必須要有注釋,說明每個數據項的用途。
?
1.枚舉類的基本使用方式自己去找博客看看不在贅述
2.枚舉類自己有一個ordinal 方法 返回int 是根據枚舉成員的聲明順序來的,枚舉類自帶的有一個compareTo方法比較的是ordinal的值,看源碼可知.
3.枚舉對象的==和eques方式是一個作用看源碼可知
4.每一個枚舉類都會隱式的繼承java.lang.Enum這個類,java中又是沒有多繼承的,所以枚舉類不能繼承,可以實現接口可以通過任意枚舉反射獲取父類得知
5.enum類中定義抽象方法
public enum EnumDemo3 {FIRST{@Overridepublic String getInfo() {return "FIRST TIME";}},SECOND{@Overridepublic String getInfo() {return "SECOND TIME";}};/*** 定義抽象方法* @return*/public abstract String getInfo();//測試public static void main(String[] args){System.out.println("F:"+EnumDemo3.FIRST.getInfo());System.out.println("S:"+EnumDemo3.SECOND.getInfo());/**輸出結果:F:FIRST TIMES:SECOND TIME*/} } View Code6.enum類與接口
public enum EnumDemo2 implements food ,sport{FOOD,SPORT,; //分號分隔 @Overridepublic void eat() {System.out.println("eat.....");}@Overridepublic void run() {System.out.println("run.....");} } View Code7.使用switch不用再case中寫引用,直接 case BLUE:....
8.枚舉類EnumMap 底層使用數組效率高
EnumMap<ColorEnum, String> enumMap = new EnumMap<ColorEnum, String>(ColorEnum.class); enumMap.put(ColorEnum.RED, ColorEnum.RED.getName()); enumMap.put(ColorEnum.GREEN, ColorEnum.GREEN.getName()); enumMap.put(ColorEnum.BLANK, ColorEnum.BLANK.getName()); enumMap.put(ColorEnum.YELLO, ColorEnum.YELLO.getName()) View Code9枚舉類EnumSet
EnumSet<ColorEnum> colorEnumSet = EnumSet.allOf(ColorEnum.class); for (ColorEnum colorEnum : colorEnumSet) {System.out.println(colorEnum.getName()); } View Code?
轉載于:https://www.cnblogs.com/codeLei/p/9177410.html
總結
- 上一篇: java基础题集
- 下一篇: BZOJ3245: 最快路线 拆点dij