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

