java枚舉小結

  1. 如何定義一個枚舉類?java

    1 //定義了4個等級
    2 enum Level{
    3     A,B,C,D
    4 }

     

  2.  枚舉類的實質:ide

    1 class Level{
    2     public static final Level A = new Level();
    3     public static final Level B = new Level();
    4     public static final Level C = new Level();
    5     public static final Level D = new Level();
    6 }

     

  3. 枚舉類能夠定義構造方法,屬性,方法this

     1 enum Level{
     2     A("85~100","優"),
     3     B("75~84","良"),
     4     C("60~74","中"),
     5     D("60如下","差");
     6     private String score;
     7     private String ctype;
     8     private  Level(String score,String ctype){     //構造方法必須是私有的
     9         this.score = score ;
    10         this.ctype = ctype;
    11     }
    12     public String getscore(){
    13         return this.score;
    14     }
    15     public String getctpye(){
    16         return this.ctype;
    17     }
    18 }
    19 public class Enumation {
    20     public static void main(String[] args) {
    21         System.out.println(Level.A.getscore());
    22         System.out.println(Level.A.getctpye());
    23         Level[] ls = Level.values();
    24     }
    25 }
    26 //輸出結果
    27 //85~100
    28 //

     

  4. 帶抽象方法的枚舉類
     1 enum Level{
     2     A("85~100"){
     3         @Override
     4         public String getctpye() {
     5             return "優";
     6         }
     7     },
     8     B("75~84") {
     9         @Override
    10         public String getctpye() {
    11             return "良";
    12         }
    13     },
    14     C("60~74") {
    15         @Override
    16         public String getctpye() {
    17             return "中";
    18         }
    19     },
    20     D("60如下") {
    21         @Override
    22         public String getctpye() {
    23             return "差";
    24         }
    25     };
    26     private String score;
    27     private  Level(String score){
    28         this.score = score ;
    29     }
    30     public String getscore(){
    31         return this.score;
    32     }
    33     public abstract String getctpye();  //每一個對象都要重寫抽象方法
    34 
    35 }

     

  5.  經常使用方法spa

     1 public class Enumation {
     2     public static void main(String[] args) {
     3         System.out.println(Level.C.name()); //返回枚舉常量的名稱
     4         System.out.println(Level.C.ordinal()); //返回枚舉常量的序號(下標從0開始)
     5         Level[] ls = Level.values();        //遍歷枚舉類型
     6         for(Level l :ls){
     7             System.out.println(l);
     8         }
     9         String letter = "B" ;        
    10         //返回帶指定名稱的指定枚舉類型的枚舉常量,若letter爲非枚舉類型會拋異常java.lang.IllegalArgumentException: No enum constant 
    11         Level b = Level.valueOf(letter);
    12         System.out.println(b.B);
    13     }
    14 }
      

    輸出:
    C
    2
    A
    B
    C
    D
    Bcode

相關文章
相關標籤/搜索