亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一文搞懂JAVA 枚舉(enum)

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

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

Java 枚舉類使用 enum 關(guān)鍵字來(lái)定義,各個(gè)常量使用逗號(hào) , 來(lái)分割。

例如定義一個(gè)顏色的枚舉類。

enum Color 
{ 
  RED, GREEN, BLUE; 
} 

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

使用實(shí)例:

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

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

以上的枚舉類 Color 轉(zhuǎn)化在內(nèi)部類實(shí)現(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 語(yǔ)句來(lái)迭代枚舉元素:

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 語(yǔ)句中:

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("藍(lán)色");
    break;
  }
 }
}

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

藍(lán)色

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

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

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

  • values() 返回枚舉類中所有的值。
  • ordinal()方法可以找到每個(gè)枚舉常量的索引,就像數(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() 返回枚舉常量,不存在的會(huì)報(bào)錯(cuò) 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 訪問(wèn)修飾符,所以外部無(wú)法調(diào)用。

枚舉既可以包含具體方法,也可以包含抽象方法。 如果枚舉類具有抽象方法,則枚舉類的每個(gè)實(shí)例都必須實(shí)現(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)的詳細(xì)內(nèi)容,更多關(guān)于JAVA 枚舉(enum)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java案例分享-集合嵌套

    Java案例分享-集合嵌套

    這篇文章主要介紹了Java案例分享-集合嵌套,通過(guò)案例創(chuàng)建一個(gè)ArrayList集合,存儲(chǔ)三個(gè)元素,每一個(gè)元素都是HashMap,每一個(gè)HashMap的鍵和值都是String,并遍歷,實(shí)際操作內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • Mybatis-plus?代碼生成器?AutoGenerator?的簡(jiǎn)介和使用詳解

    Mybatis-plus?代碼生成器?AutoGenerator?的簡(jiǎn)介和使用詳解

    AutoGenerator是MyBatis-Plus的代碼生成器,通過(guò)AutoGenerator可以快速生成?Entity、Mapper、Mapper XML、Service、Controller等各個(gè)模塊的代碼,極大的提升了開發(fā)效率,這篇文章主要介紹了Mybatis-plus代碼生成器AutoGenerator的簡(jiǎn)介和使用,需要的朋友可以參考下
    2023-05-05
  • java int類型二維數(shù)組實(shí)現(xiàn)“楊輝三角”的完整實(shí)例

    java int類型二維數(shù)組實(shí)現(xiàn)“楊輝三角”的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于java int類型二維數(shù)組實(shí)現(xiàn)“楊輝三角”的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • POI讀取excel簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    POI讀取excel簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了POI讀取excel簡(jiǎn)介,詳細(xì)的介紹了什么是Apache POI和組件,有興趣的可以了解了解一下
    2017-08-08
  • 簡(jiǎn)述Java編程語(yǔ)言對(duì)象的容納

    簡(jiǎn)述Java編程語(yǔ)言對(duì)象的容納

    這篇文章主要對(duì)Java編程思想中對(duì)象的容納進(jìn)行了一個(gè)總體的介紹,具有一定的參考價(jià)值,需要的朋友可以了解下。
    2017-09-09
  • SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫(kù)版本控制的詳細(xì)教程

    SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫(kù)版本控制的詳細(xì)教程

    這篇文章主要介紹了SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫(kù)版本控制,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • idea+ springboot熱部署的配置方法

    idea+ springboot熱部署的配置方法

    這篇文章主要介紹了idea+ springboot熱部署的配置方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 5種Java中數(shù)組的拷貝方法總結(jié)分享

    5種Java中數(shù)組的拷貝方法總結(jié)分享

    這篇文章主要介紹了5種Java中數(shù)組的拷貝方法總結(jié)分享,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼

    Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼

    本文主要介紹了Springboot+Redis實(shí)現(xiàn)API接口限流的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 精通Java List 按字段提取對(duì)象

    精通Java List 按字段提取對(duì)象

    這篇文章主要介紹了精通Java List 按字段提取對(duì)象的相關(guān)資料,需要的朋友可以參考下
    2023-11-11

最新評(píng)論