1、枚舉類的用法java
1.能夠做爲常量使用,由於常量沒有命名空間,使用起來不是很是清晰,若是使用枚舉類,就能夠清晰地讀懂代碼,代碼可維護性強。數組
2.能夠在switch條件語句中使用,由於String類型不能在switch條件語句中使用,而這時使用枚舉進行條件判斷,就能夠清晰地讀懂代碼,代碼可維護性強。this
2、常見的有兩種建立枚舉方式,一種沒有構造器,一種有構造器的code
1.沒有構造器的建立get
public enum A { DOG,BAT,CAT,LEFT; } 調用: public static void main(String[] args) { A a=A.DOG; A b=A.BAT; A c=A.CAT; A d=A.LEFT; switch (A.BAT) { case DOG: System.out.println(A.DOG); break; case BAT: System.out.println(A.BAT); break; case CAT: System.out.println(A.CAT); break; default: System.out.println(A.LEFT); break; } //System.out.println(A.BAT); } 輸出結果: BAT
2.有構造器的建立it
a.一個參數的構造器io
public enum OperationEnum { A("+"), B("-"), C("*"), D("/"); private String operate; private OperationEnum(String operate) { this.operate = operate; } private String getOperate() { return operate; } public static OperationEnum val(String operate) { for(OperationEnum s : values()) { //values()方法返回enum實例的數組 if(operate.equals(s.getOperate())) return s; } return null; } } 調用: public static void main(String[] args) { OperationEnum operationEnum = OperationEnum.val("+"); System.out.println(operationEnum); System.out.println(operationEnum.getOperate()); } 輸出結果: A +
b.有兩個參數的構造器class
public enum EhsEnum { EHS_1("01", "查驗"), EHS_11("02", "放行"); String message; String dec; //這裏注意構造器裏的參數順序與 EHS_1("01", "查驗") 一一對應,dec》01,message》查驗 EhsEnum( String dec,String message) { this.dec = dec; this.message = message; } public String getDec() { return dec; } public String getMessage() { return message; } public static String valueDec(String value) { if (value == null) { return null; } else { for (EhsEnum ehs : EhsEnum.values()) { if (ehs.getDec().equals(value)) { return ehs.getMessage(); } } return null; } } 調用: public static void main(String[] args) { EhsEnum e =EhsEnum.EHS_1; System.out.println(e.getDec()); System.out.println(e.getMessage()); } 輸出結果: 01 查驗 }