最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文搞懂JAVA 枚舉(enum)

 更新時間:2020年07月17日 16:33:39   作者:菜鳥教程  
這篇文章主要介紹了JAVA 枚舉(enum)的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下

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

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

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

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 中使用枚舉類

枚舉類常應用于 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 枚舉(enum)的詳細內(nèi)容,更多關于JAVA 枚舉(enum)的資料請關注腳本之家其它相關文章!

相關文章

  • spring boot 日志/頁面處理、實體類構(gòu)建、后臺管理功能的實現(xiàn)

    spring boot 日志/頁面處理、實體類構(gòu)建、后臺管理功能的實現(xiàn)

    這篇文章主要介紹了spring boot 日志/頁面處理、實體類構(gòu)建、后臺管理功能的實現(xiàn),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • mybatisplus中的xml對象參數(shù)傳遞問題

    mybatisplus中的xml對象參數(shù)傳遞問題

    這篇文章主要介紹了mybatisplus中的xml對象參數(shù)傳遞問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • springboot與dubbo的版本匹配問題

    springboot與dubbo的版本匹配問題

    這篇文章主要介紹了springboot與dubbo的版本匹配問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Mybatis?Interceptor線程安全引發(fā)的bug問題

    Mybatis?Interceptor線程安全引發(fā)的bug問題

    這篇文章主要介紹了Mybatis?Interceptor線程安全引發(fā)的bug問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java實現(xiàn)Dijkstra算法的示例代碼

    Java實現(xiàn)Dijkstra算法的示例代碼

    Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計算一個節(jié)點到其他所有節(jié)點的最短路徑。本文主要介紹了實現(xiàn)這一算法的Java代碼,需要的可以參考一下
    2022-07-07
  • JDK19新特性使用實例詳解

    JDK19新特性使用實例詳解

    這篇文章主要為大家介紹了JDK19新特性使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • spring-boot List轉(zhuǎn)Page的方法步驟

    spring-boot List轉(zhuǎn)Page的方法步驟

    這篇文章主要介紹了spring-boot List轉(zhuǎn)Page的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 詳解java重載與覆寫的區(qū)別

    詳解java重載與覆寫的區(qū)別

    很多同學會重載和重寫分不清楚,這篇文章主要介紹了詳解java重載與覆寫的區(qū)別,有需要的朋友可以了解一下。
    2016-11-11
  • java獲取中文拼音首字母工具類定義與用法實例

    java獲取中文拼音首字母工具類定義與用法實例

    這篇文章主要介紹了java獲取中文拼音首字母工具類定義與用法,結(jié)合實例形式分析了java獲取中文拼音首字母工具類的具體定義、使用方法及相關操作注意事項,需要的朋友可以參考下
    2019-10-10
  • Java世界時區(qū)自動計算及時間生成方法詳解

    Java世界時區(qū)自動計算及時間生成方法詳解

    這篇文章主要為大家詳細介紹了Java中世界時區(qū)自動計算及時間生成的方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12

最新評論

黄平县| 宜昌市| 革吉县| 任丘市| 尖扎县| 潍坊市| 祥云县| 宝山区| 广元市| 丘北县| 大埔区| 伊金霍洛旗| 图们市| 云安县| 枝江市| 洞头县| 永新县| 靖安县| 喜德县| 遂宁市| 青田县| 新晃| 乐亭县| 兴安盟| 文成县| 无极县| 白水县| 雅江县| 浦江县| 东丽区| 瑞丽市| 平江县| 石柱| 云浮市| 苏尼特左旗| 信阳市| 南宫市| 永丰县| 马尔康县| 卢氏县| 六盘水市|