您好,登錄后才能下訂單哦!
java枚舉類的構造函數實例詳解
首先,給出一個例題如下:
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
分析:
創建枚舉類型要使用 enum 關鍵字,隱含了所創建的類型都是 Java.lang.Enum 類的子類(java.lang.Enum 是一個抽象類)。枚舉類型符合通用模式Class Enum<E extends Enum <E>>,而E表示枚舉類型的名稱的每一個值都將映射到 protected Enum(String name, int ordinal) 構造函數中
簡單來說就是枚舉類型中的枚舉值都會對應調用一次構造函數,本題中三個枚舉值,這里還要特別強調一下,枚舉中的構造函數是私有類,也就是無法再外面創建enum
枚舉值默認static(靜態類常量) ,會為每個類常量增加一個構造函數。AccountType.FIXED使用的是枚舉值,沒有創建。所以一共就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
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。