欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          JAVA 枚舉(enum)詳解

          JAVA 枚舉(enum)詳解

          Java 枚舉是一個特殊的類,一般表示一組常量,比如一年的 4 個季節(jié),一個年的 12 個月份,一個星期的 7 天,方向有東南西北等。

          Java 枚舉類使用 enum 關(guān)鍵字來定義,各個常量使用逗號 , 來分割。

          例如定義一個顏色的枚舉類。

          enum Color  {    RED, GREEN, BLUE;  }

          以上枚舉類 Color 顏色常量有 RED, GREEN, BLUE,分別表示紅色,綠色,藍色。

          使用實例:

          enum Color {   RED, GREEN, BLUE; }   public class Test {   // 執(zhí)行輸出結(jié)果   public static void main(String[] args)   {     Color c1 = Color.RED;     System.out.println(c1);   } }

          執(zhí)行以上代碼輸出結(jié)果為:

          RED

          內(nèi)部類中使用枚舉

          枚舉類也可以聲明在內(nèi)部類中:

          public class Test {   enum Color   {     RED, GREEN, BLUE;   }     // 執(zhí)行輸出結(jié)果   public static void main(String[] args)   {     Color c1 = Color.RED;     System.out.println(c1);   } }

          執(zhí)行以上代碼輸出結(jié)果為:

          RED

          每個枚舉都是通過 Class 在內(nèi)部實現(xiàn)的,且所有的枚舉值都是 public static final 的。

          以上的枚舉類 Color 轉(zhuǎn)化在內(nèi)部類實現(xiàn):

          class Color {    public static final Color RED = new Color();    public static final Color BLUE = new Color();    public static final Color GREEN = new Color(); }

          迭代枚舉元素

          可以使用 for 語句來迭代枚舉元素:

          enum Color {   RED, GREEN, BLUE; } public class MyClass {  public static void main(String[] args) {   for (Color myVar : Color.values()) {    System.out.println(myVar);   }  } }

          執(zhí)行以上代碼輸出結(jié)果為:

          RED
          GREEN
          BLUE

          在 switch 中使用枚舉類

          枚舉類常應(yīng)用于 switch 語句中:

          enum Color {   RED, GREEN, BLUE; } public class MyClass {  public static void main(String[] args) {   Color myVar = Color.BLUE;    switch(myVar) {    case RED:     System.out.println("紅色");     break;    case GREEN:      System.out.println("綠色");     break;    case BLUE:     System.out.println("藍色");     break;   }  } }

          執(zhí)行以上代碼輸出結(jié)果為:

          藍色

          values(), ordinal() 和 valueOf() 方法

          enum 定義的枚舉類默認繼承了 java.lang.Enum 類,并實現(xiàn)了 java.lang.Seriablizable 和 java.lang.Comparable 兩個接口。

          values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 類中:

          • values() 返回枚舉類中所有的值。
          • ordinal()方法可以找到每個枚舉常量的索引,就像數(shù)組索引一樣。
          • valueOf()方法返回指定字符串值的枚舉常量。
          enum Color {   RED, GREEN, BLUE; }   public class Test {   public static void main(String[] args)   {     // 調(diào)用 values()     Color arr[] = Color.values();       // 迭代枚舉     for (Color col : arr)     {       // 查看索引       System.out.println(col + " at index " + col.ordinal());     }       // 使用 valueOf() 返回枚舉常量,不存在的會報錯 IllegalArgumentException     System.out.println(Color.valueOf("RED"));     // System.out.println(Color.valueOf("WHITE"));   } }

          執(zhí)行以上代碼輸出結(jié)果為:

          RED at index 0
          GREEN at index 1
          BLUE at index 2
          RED

          枚舉類成員

          枚舉跟普通類一樣可以用自己的變量、方法和構(gòu)造函數(shù),構(gòu)造函數(shù)只能使用 private 訪問修飾符,所以外部無法調(diào)用。

          枚舉既可以包含具體方法,也可以包含抽象方法。 如果枚舉類具有抽象方法,則枚舉類的每個實例都必須實現(xiàn)它。

          enum Color {   RED, GREEN, BLUE;     // 構(gòu)造函數(shù)   private Color()   {     System.out.println("Constructor called for : " + this.toString());   }     public void colorInfo()   {     System.out.println("Universal Color");   } }   public class Test {     // 輸出   public static void main(String[] args)   {     Color c1 = Color.RED;     System.out.println(c1);     c1.colorInfo();   } }

          執(zhí)行以上代碼輸出結(jié)果為:

          Constructor called for : RED
          Constructor called for : GREEN
          Constructor called for : BLUE
          RED
          Universal Color

          推薦教程:《Java教程》

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號