溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java枚舉類的構(gòu)造函數(shù)實例詳解

發(fā)布時間:2020-08-22 04:37:51 來源:腳本之家 閱讀:774 作者:lqh 欄目:編程語言

java枚舉類的構(gòu)造函數(shù)實例詳解

首先,給出一個例題如下:

enum AccountType
{
  SAVING, FIXED, CURRENT;
  private AccountType()
  {
    System.out.println(“It is a account type”);
  }
}
class EnumOne
{
  public static void main(String[]args)
  {
    System.out.println(AccountType.FIXED);
  }
}

Terminal輸出:

It is a account type
It is a account type
It is a account type
FIXED

分析:

創(chuàng)建枚舉類型要使用 enum 關(guān)鍵字,隱含了所創(chuàng)建的類型都是 Java.lang.Enum 類的子類(java.lang.Enum 是一個抽象類)。枚舉類型符合通用模式Class Enum<E extends Enum <E>>,而E表示枚舉類型的名稱的每一個值都將映射到 protected Enum(String name, int ordinal) 構(gòu)造函數(shù)中

簡單來說就是枚舉類型中的枚舉值都會對應(yīng)調(diào)用一次構(gòu)造函數(shù),本題中三個枚舉值,這里還要特別強調(diào)一下,枚舉中的構(gòu)造函數(shù)是私有類,也就是無法再外面創(chuàng)建enum

枚舉值默認static(靜態(tài)類常量) ,會為每個類常量增加一個構(gòu)造函數(shù)。AccountType.FIXED使用的是枚舉值,沒有創(chuàng)建。所以一共就3次。

public class Test {

  public static void main(String[] args) {

    weekday mon = weekday.mon;
    weekday tue = weekday.tue;
    weekday thus = weekday.thus;
    weekday fri = weekday.fri;

  }

  public enum weekday {
    mon(), tue(2), wes(3), thus(), fri;
    private weekday() {
      System.out.println("no args");
    }

    private weekday(int i) {
      System.out.println("have args " + i);
    };
  }
}

Terminal輸出:

no args
have args 2
have args 3
no args
no args

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI