用法一:常量
在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 = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; 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) { this.name = name; this.index = index; } // 普通方法 public static String getName(int index) { for (Color c : Color.values()) { if (c.getIndex() == index) { return c.name; } } return null; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = 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) { this.name = name; this.index = index; } //覆盖方法 @Override public String toString() { return this.index+"_"+this.name; } }
用法五:实现接口
所有的枚举都继承自java.lang.Enum类。由于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) { this.name = name; this.index = index; } //接口方法 @Override public String getInfo() { return this.name; } //接口方法 @Override public void print() { System.out.println(this.index+":"+this.name); } }
用法六:使用接口组织枚举
public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO } }
用法七:关于枚举集合的使用
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。
关于枚举的实现细节和原理请参考:
参考资料:《ThinkingInJava》
相关推荐
Java语言程序设计:JAVA_2-基本数据类型、枚举类型和数组.ppt
Java枚举数据类型.pdf
Java枚举数据类型.doc
完整版 Java初级教程 Java语言程序设计 第2章 基本数据类型、数组和枚举(共19页).ppt 完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4...
Java语言中,为了能够把基本数据类型当做对象处理,通过包装类将八个基本数据类型包装成类,并提供了多种方法供以调用。。。。
枚举是一种特殊的数据类型,用于定义具有固定个数的常量集。它可以帮助我们更好地管理常量,使代码更易于阅读和维护。 Java枚举是一种高效、可读性强的常量管理方式,它可以使代码更易于维护和扩展。使用Java枚举...
代码中包含枚举类的基本使用,和完整的请求示例。 主要实现了枚举类创建单例后,将结果返回给前端。 看过一些其他人的实现,都比较麻烦。这是结合一些博主的代码,摸索出来的比较方便的方案。 缺点就是 多线程下会...
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如:集合的操作中。例如使用Map对象要操作put()方法时,需要传入的参数...
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...
1. 通过getEnumConstatnts返回目前枚举中存在的对象。 2. 通过getMehod获取方法。 3. 最后用这个对象调用其方法。 程序运行截图如下: 其中对应的枚举: 源码如下: Em.java package en; public enum Em { ONE_...
以上是 Java 面试中有关数据类型常见的 50 个面试题,涵盖了基本数据类型、引用数据类型、包装类、枚举类型、注解、正则表达式、日期和时间 API、泛型、异常、断言、多态、继承、接口、抽象类、内部类、lambda ...
完整版 Java初级教程 Java语言程序设计 第2章 基本数据类型、数组和枚举(共19页).ppt 完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4...
Java基本数据类型 string和包装类 final关键字特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解...
完整版 Java初级教程 Java语言程序设计 第2章 基本数据类型、数组和枚举(共19页).ppt 完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4...
目前支持基础数据类型int、long、foloat、double、const char *、bool的转换,也支持将数组装换为JAVA中的ArrayList。目前有个难点是将枚举类型直接转换为JAVA中的枚举,这个目前还搞不定,如果有朋友知道怎么搞,...
Java基本数据类型 字符串和包装类 关键字最终特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和...
完整版 Java初级教程 Java语言程序设计 第2章 基本数据类型、数组和枚举(共19页).ppt 完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4...