Java Enum 淺析__Java

來源:互聯網
上載者:User
1.        關於 Java Enum:

學過 C/C++ 等語言的人,應該都對 Enum 類型略知一二。 Enum 一般用來表示一組相同類型的常量。如性別、日期、月份、顏色等。對這些屬性用常量的好處是顯而易見的,不僅可以保證單例,且比較時候可以用 ”==” 來替換 equals。是一種好的習慣。 JDK1.5 之前沒有 Enum 這個類型,那時候一般用介面常量來替代。有了 JavaEnum 之後,可以更貼近的表示這種常量。 2.        如何使用 Java Enum

簡單的用法: JavaEnum 簡單的用法一般用於代表一組常用常量,可用來代表一類相同類型的常量值。如:

 

性別:

public enum SexEnum {

   male , female ;

}

顏色:

public enum Color {

   RED , BLUE,GREEN,BLACK ;

枚舉對象裡面的值都必須是唯一的。

可以通過 Enum 類型名直接引用該常量,如 SexEnum.male,Color.RED.


註:以上摘自CSDN:abing37

複雜用法: Java 為枚舉類型提供了一些內建的方法,同事枚舉常量還可以有自己的方法。可以很方便的遍曆枚舉對象。

下面是幾個範例程式碼: Code 1 :EnumMethod.java 下面是枚舉類型的常用方法:

/**  * author owenyang  * data   2012-11-2  */ import static java.lang.System.out;  public class EnumMethod {  enum SexEnum{ male, famle, shemale }  //compareTo() public static void compare(SexEnum sexE){ for(int i = 0 ; i <SexEnum.values().length; i++){ out.println("The Result of "+sexE+" compareTo "+SexEnum.values()[i]+": "+ sexE.compareTo(SexEnum.values()[i])); } }  public static void main(String[] args) { // TODO Auto-generated method stub for(SexEnum sex: SexEnum.values()){ out.println("Enum member variable: "+sex); }  //use another way to show out.println("------------use another way to show------------ "); for(int i =0;i<SexEnum.values().length;i++){ out.println("Enum member variable: "+SexEnum.values()[i]); }  //compareTo() and valueOf() compare(SexEnum.valueOf("shemale"));  //ordinal() to get the index of member variable for(SexEnum sex: SexEnum.values()){ out.println("Index of "+sex+" "+sex.ordinal()); } }  }

Code 2:EnumConstructor.java 下面是枚舉類型中的構造方法使用

public class EnumConstructor {  //constructor usage enum SexEnum{ male("I am a man"), famle("I am a woman"), shemale("I am a shemale");  private String description; private SexEnum(String str){ this.description=str; }  public String getDescription(){ return this.description; } }  //we can also define the getDescription in the interface interface GetDesc{ public String getDescription(); } enum ExtraEnum implements GetDesc{ male{ public String getDescription(){ return "I am a super man"; } }, famle{ public String getDescription(){ return "I am a super woman"; } } }  public static void main(String[] args) { // TODO Auto-generated method stub for(SexEnum sex:SexEnum.values()){ System.out.println("Info: "+sex.getDescription()); }  //test interface for(int i =0;i<ExtraEnum.values().length;i++){ System.out.println(ExtraEnum.values()[i]+" invoke getDescription: " +ExtraEnum.values()[i].getDescription()); } }  }

Code 3: EnumerationTest.java

下面是枚舉介面的簡單樣本:

 

import java.util.Enumeration; import java.util.Vector;  public class EnumerationTest {  public static void main(String[] args) { // TODO Auto-generated method stub Vector<Integer> vector = new Vector<Integer>();  for(int i =0;i<5;i++){ vector.add(i); System.out.println("add elements to vector: "+i); }  //將向量轉換成枚舉介面型  Enumeration<Integer> e = vector.elements(); while(e.hasMoreElements()){ System.out.println("element: "+e.nextElement()); } }  }

以上,大部分摘自牛人,代碼已測。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.