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 = 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文档。
相关推荐
Java ---- enum --- 枚举类案例
OpenJDK 1.8.0 版本包含了Java语言的关键特性,如泛型、枚举、匿名内部类、动态代理、增强的for循环、可变参数、注解等。此外,它还提供了Lambda表达式、函数式接口、Stream API、Optional类等Java 8的新特性,这些...
2. **字符串in switch**:允许在switch语句中直接使用字符串,使得处理枚举类型或常量更加灵活。 3. **钻石操作符**:对于泛型实例化,可以省略类型参数的显式指定,如`new ArrayList()`。 4. **文件API增强**:...
本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...
2. **全面的API**:USB4Java提供了一套完整的Java API,涵盖了USB设备的所有功能,包括枚举设备、打开和关闭设备、读写数据、管理配置和接口、处理中断和块传输等。 3. **事件驱动模型**:通过使用异步事件处理机制...
1. **定义数据结构**:在.proto文件中,使用protobuf语法定义数据结构,包括消息类型、字段、枚举等。 2. **编译.proto文件**:使用protoc.exe对.proto文件进行编译,指定目标语言为Java,这将生成对应的Java源代码...
标题中的"protobuf-java-3.5.1.jar"是一个Java版本的Protocol Buffers库,用于处理Google的Protocol Buffers(简称protobuf)数据格式。protobuf是一种轻量级、高效的结构化数据序列化机制,广泛应用于跨平台的数据...
《Eclipse Java谷歌代码规范详解》 在软件开发过程中,代码规范起着至关重要的作用,它不仅能够提高代码的可读性,降低维护成本,还能提升团队协作效率。本文将详细解析"Eclipse Java谷歌代码规范",即通过Eclipse...
4. **数据类型支持**:protobuf支持多种基础数据类型以及复杂的数据结构,如消息(message)、数组、枚举(enum)和可选/重复字段。 5. **反射API**:protobuf提供反射API,允许在运行时动态地处理protobuf消息,...
《FCKeditor Java版2.4.1对JDK 1.4的兼容性改造详解》 FCKeditor是一款流行的开源在线文本编辑器,广泛应用于Web应用中的富文本编辑功能。其Java版本(FCKeditor-java)使得开发者可以将这款编辑器无缝集成到Java...
计算机后端-Java-Java核心基础-第23章 枚举类与注解 05. 自定义枚举类.avi
计算机后端-Java-Java核心基础-第23章 枚举类与注解 04. 枚举类的理解.avi
这是Oracle公司发布的Java平台标准版(Java SE)的一个版本,提供了许多改进和新特性,如泛型、枚举、注解和增强的for循环等。"appengine-java-s"可能是“appengine-java-sdk”的简写,再次强调了SDK的主题。"java_...
计算机后端-Java-Java核心基础-第23章 枚举类与注解 06. 使用enum关键字定义枚举类.avi
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
计算机后端-Java-Java核心基础-第23章 枚举类与注解 08. 使用enum关键字定义的枚举类实
计算机后端-Java-Java核心基础-第23章 枚举类与注解 03. 复习:Java比较器等.avi
计算机后端-Java-Java核心基础-第23章 枚举类与注解 13. 如何自定义注解.avi
计算机后端-Java-Java核心基础-第23章 枚举类与注解 01. 每天一考.avi
计算机后端-Java-Java核心基础-第23章 枚举类与注解 10. 注解的理解.avi