Java枚举常见7种用法汇总
java DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。
用法一:常量
在JDK1.5 之前,我们定义常量都是: publicstaticfianl…… .现在好了,有了枚举,可以把相关的.常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
public enum Color { RED, GREEN, BLANK, YELLOW }
用法二: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;}
用法三:向枚举中添加新方法
如果打算自定义自己的方法,那么必须在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文档。
-
java面试题大全带答案
为了能够提高自身能力,每年都会有大量的人员参加Java认证考试。下面是小编整理的关于java面试题大全带答案,欢迎大家参考!isoracle.ismajordiffereneceoracle8iandoracle9i.mesomethingurself.setellmeaboutoops.issingleinheritance.ismultipleinheritance.java...
-
Java新手如何学习Spring框架
Spring是Java开源J2EE应用程序框架,Struts是Java开源Web框架,Hibernate是Java开源持久层框架。对于Java新手来说,Java框架也是Java学习路上的一大路障。那么如何学习Spring框架?下面跟yjbys小编一起来看看吧!Spring提供了管理业务对象的一致方法并且鼓励了注入对...
-
Java中日期的处理方法
Java语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分。下面小编准备了关于Java中日期的处理方法,欢迎大家参考!我们将讨论下面的类:1、具体类(和抽象类相对)2、抽象类Forma...
-
Java的内存划分全解析
Java把内存划分成两种:一种是栈内存,一种是堆内存。下面一起来看看java的内存划分全部内容。栈内存存放对象:函数中基本类型的变量和对象的引用变量、静态类方法特点:栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义:inta=3;intb=3;编译器先处...