java枚舉類的構(gòu)造函數(shù)實例詳解
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ù),本題中三個枚舉值,這里還要特別強(qiáng)調(diào)一下,枚舉中的構(gòu)造函數(shù)是私有類,也就是無法再外面創(chuàng)建enum
枚舉值默認(rèn)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
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
springboot yml中profiles的巧妙用法(小白必看多環(huán)境配置)
這篇文章主要介紹了springboot yml中profiles的巧妙用法,非常適合多環(huán)境配置場景,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04Java使用DateFormatter格式化日期時間的方法示例
這篇文章主要介紹了Java使用DateFormatter格式化日期時間的方法,結(jié)合具體實例分析了java使用DateFormatter格式化日期時間的相關(guān)操作技巧,需要的朋友可以參考下2017-04-04業(yè)務(wù)系統(tǒng)的Prometheus實踐示例詳解
這篇文章主要為大家介紹了業(yè)務(wù)系統(tǒng)的Prometheus實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Java實現(xiàn)提取不重復(fù)的整數(shù)實例
這篇文章主要介紹了Java實現(xiàn)提取不重復(fù)的整數(shù)實例,具有一定借鑒價值,需要的朋友可以參考下2017-12-12