Java列舉的常用方法
DK1.5引入了新的型別——列舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。
用法一:switch
JDK1.6之前的switch語句只支援int,char,enum型別,使用列舉,能讓我們的程式碼可讀性更強。
enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = ;public void change() { switch (color) { case RED:color = N;break;case YELLOW:color = ;break;case GREEN:color = OW;break;}
用法二:常量
在JDK1.5 之前,我們定義常量都是: publicstaticfianl…… .現在好了,有了列舉,可以把相關的'常量分組到一個列舉型別裡,而且列舉提供了比常量更多的方法。
public enum Color { RED, GREEN, BLANK, YELLOW }
用法三:向列舉中新增新方法
如果打算自定義自己的方法,那麼必須在enum例項序列的最後新增一個分號。而且 Java 要求必須先定義 enum 例項。
public enum Color { RED(“紅色”, 1), GREEN(“綠色”, 2), BLANK(“白色”, 3), YELLO(“黃色”, 4);// 成員變數private String name;private int index;// 構造方法private Color(String name, int index) { = name;x = index;} // 普通方法public static String getName(int index) { for (Color c : es()) { if (ndex() == index) { return ;} return null;} // get set 方法public String getName() { return name;} public void setName(String name) { = name;} public int getIndex() { return index;} public void setIndex(int index) { x = index;}
用法四:覆蓋列舉的方法
下面給出一個toString()方法覆蓋的例子。
public enum Color { RED(“紅色”, 1), GREEN(“綠色”, 2), BLANK(“白色”, 3), YELLO(“黃色”, 4);// 成員變數private String name;private int index;// 構造方法private Color(String name, int index) { = name;x = index;} //覆蓋方法@Override public String toString() { return x+“_”+;}
用法五:實現介面
所有的列舉都繼承自類。由於Java 不支援多繼承,所以列舉物件不能再繼承其他類。
public interface Behaviour { void print();String getInfo();} public enum Color implements Behaviour{ RED(“紅色”, 1), GREEN(“綠色”, 2), BLANK(“白色”, 3), YELLO(“黃色”, 4);// 成員變數private String name;private int index;// 構造方法private Color(String name, int index) { = name;x = index;} //介面方法@Override public String getInfo() { return ;} //介面方法@Override public void print() { tln(x+“:”+);}
用法六:使用介面組織列舉
public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO }
用法七:關於列舉集合的使用
Set和Map是兩個列舉集合。EnumSet保證集合中的元素不重複;EnumMap中的 key是enum型別,而value則可以是任意型別。關於這個兩個集合的使用就不在這裡贅述,可以參考JDK文件。
-
關於JDK5交通燈模擬控制系統
為了方便廣大程式猿交流和學習,下面小編準備了關於JDK5交通燈模擬控制系統,歡迎大家參考!本系統由,,和組成。:packagefic;publicenumLamp{//前進,左拐,右拐S2N("N2S","S2W",false),S2W("N2E","E2W",false),S2E(null,null,true),E2W("W2E","E2S",false),E2S("W2N","S2N",false),E2N(nu...
-
java工程師認證考試考點:資料庫服務區考點彙總
關於java認證考試,同學們知道資料庫及伺服器的知識點有哪些?下面跟yjbys小編一起來複習一下吧!(一)伺服器1、web伺服器nginx和apache的對比分析①nginx相對於apache的優點:輕量級,同樣起web服務,比apache佔用更少的記憶體及資源,抗併發,nginx處理請求是非同步非阻塞的,而a...
-
2017年經典的JAVA面試題及答案
20世紀90年代,硬體領域出現了單片式計算機系統,這種價格低廉的系統一出現就立即引起了自動控制領域人員的注意,因為使用它可以大幅度提升消費類電子產品(如電視機頂盒、麵包烤箱、行動電話等)的智慧化程度。yjbys小編下面為大家收集了一些經典的JAVA面試題及答案,...
-
熱部署javaweb應用程式的方法
對於Java應用程式來說,熱部署就是在執行時更新Java類檔案。在基於Java的應用伺服器實現熱部署的過程中,類裝入器扮演著重要的角色。大多數基於Java的應用伺服器,包括EJB伺服器和Servlet容器,都支援熱部署。類裝入器不能重新裝入一個已經裝入的類,但只要使用一個新的...