Java手動(dòng)方式創(chuàng)建枚舉類(lèi)示例
本文實(shí)例講述了Java手動(dòng)方式創(chuàng)建枚舉類(lèi)。分享給大家供大家參考,具體如下:
一 點(diǎn)睛
可以采用如下設(shè)計(jì)方式手動(dòng)創(chuàng)建枚舉類(lèi)
- 通過(guò)private將構(gòu)造器隱藏起來(lái)。
- 把這個(gè)類(lèi)的所有可能實(shí)例都使用public static final屬性來(lái)保存。
- 如果有必要,可以提供一些靜態(tài)方法,允許其他程序根據(jù)特定參數(shù)來(lái)獲取與之匹配實(shí)例。
二 代碼
1 Season.java
public class Season { // 把Season類(lèi)定義成不可變的,將其成員變量也定義成final的 private final String name; private final String desc; public static final Season SPRING = new Season("春天", "趁春踏青"); public static final Season SUMMER = new Season("夏天", "夏日炎炎"); public static final Season FALL = new Season("秋天", "秋高氣爽"); public static final Season WINTER = new Season("冬天", "圍爐賞雪"); public static Season getSeason( int seasonNum ) { switch (seasonNum) { case 1: return SPRING; case 2: return SUMMER; case 3: return FALL; case 4: return WINTER; default: return null; } } // 將構(gòu)造器定義成private訪問(wèn)權(quán)限 private Season( String name, String desc ) { this.name = name; this.desc = desc; } // 只為name和desc提供getter方法 public String getName() { return this.name; } public String getDesc() { return this.desc; } }
2 SeasonTest.java
public class SeasonTest { public SeasonTest(Season s) { System.out.println(s.getName() + ",這真是一個(gè)"+ s.getDesc() + "的季節(jié)"); } public static void main(String[] args) { // 直接使用Season的FALL常量代表一個(gè)Season對(duì)象 new SeasonTest(Season.FALL); } }
三 運(yùn)行
秋天,這真是一個(gè)秋高氣爽的季節(jié)
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Java?String類(lèi)和StringBuffer類(lèi)的區(qū)別介紹
這篇文章主要介紹了Java?String類(lèi)和StringBuffer類(lèi)的區(qū)別,?關(guān)于java的字符串處理我們一般使用String類(lèi)和StringBuffer類(lèi)有什么不同呢,下面我們一起來(lái)看看詳細(xì)介紹吧2022-03-03SpringBoot實(shí)現(xiàn)Md5對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)加密的示例
本文主要介紹了SpringBoot實(shí)現(xiàn)Md5對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)加密的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04基于springboot redirect重定向路徑問(wèn)題總結(jié)
這篇文章主要介紹了springboot redirect重定向路徑問(wèn)題總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java 常用類(lèi)解析:java異常機(jī)制,異常棧,異常處理方式,異常鏈,異常丟失詳解
這篇文章主要介紹了Java 常用類(lèi)解析:java異常機(jī)制,異常棧,異常處理方式,異常鏈,異常丟失詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03List集合對(duì)象中按照不同屬性大小排序的實(shí)例
下面小編就為大家?guī)?lái)一篇List集合對(duì)象中按照不同屬性大小排序的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03mybatis項(xiàng)目實(shí)現(xiàn)動(dòng)態(tài)表名的三種方法
有時(shí)在開(kāi)發(fā)過(guò)程中java代碼中的表名和數(shù)據(jù)庫(kù)的表名并不是一致的,此時(shí)我們就需要?jiǎng)討B(tài)的設(shè)置表名,本文主要介紹了mybatis項(xiàng)目實(shí)現(xiàn)動(dòng)態(tài)表名的三種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01string類(lèi)和LocalDateTime的相互轉(zhuǎn)換方式
這篇文章主要介紹了string類(lèi)和LocalDateTime的相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02