Java學習筆記-枚舉類型,java學習筆記枚舉

來源:互聯網
上載者:User

Java學習筆記-枚舉類型,java學習筆記枚舉
枚舉類型

枚舉類型就是預先定義的一類常量集合,如一周的時間、水果的類型等。需要注意的幾點內容如下:

  • 定義枚舉類時,Java預設繼承java.lang.Enum,所以定義的枚舉類不能繼承其他類型;
  • 枚舉類中可以包含成員變數、成員函數,但枚舉常量的定義再所有field和method之前,並以“;”結束;
  • 枚舉類的建構函式必須是package-private或private;
  • 枚舉常量建立的時候都是將值傳遞到建構函式進行構建的;
  • 由於枚舉類繼承Enum類,預設具有name()(獲得枚舉常量名)、values()(獲得枚舉常量數組)、valueOf(String arg)(將arg轉為枚舉常量)、ordinal()(聲明順序,由0開始)、getClass()、getDeclaringClass()

執行個體:

 1 package enumtest; 2  3 public enum Color { 4     GREEN(2,"綠色"), 5     RED(3, "紅色"), 6     BLUE(5, "藍色"); 7      8     private int num; 9     private String desc;10     11     Color(int num, String desc) {12         this.num = num;13         this.desc = desc;14     }15     16     public int getNum() {17         return this.num;18     }19     20     public String getDesc() {21         return this.desc;22     }23     24     public static void main(String[] args) {25         for (Color color : Color.values()) {26             System.out.println(color+"---"+color.num+"---"+color.desc);27         }28         for (Color color : Color.values()) {29             System.out.println(color.name());30         }31         System.out.println(Color.valueOf("GREEN").desc);32         System.out.println(Color.GREEN.ordinal());33         System.out.println(Color.GREEN.getClass());34         System.out.println(Color.GREEN.getDeclaringClass());35     }36 }

 輸出結果:

 1 GREEN---2---綠色 2 RED---3---紅色 3 BLUE---5---藍色 4 GREEN 5 RED 6 BLUE 7 綠色 8 0 9 class enumtest.Color10 class enumtest.Color

 另外,在集合中還存在java.util.EnumSet<E extends Enum<E>>和java.util.EnumMap<K extends Enum<K>,V>,其中EnumSet可儲存不重複的枚舉常量,EnumMap的KEY為某枚舉類型,它們的儲存類型由泛型聲明決定。

參考:

https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.