用法一:常量
在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枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...
Java 枚举数据类型 Java语言中没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。这被称作int枚举模式。这种模式存在两个问题:类型安全性和可读性。 首先,int枚举模式不是类型安全的。例如,...
在Java编程语言中,枚举(Enum)作为一种重要的数据类型,在程序设计中扮演着不可或缺的角色。本文将深入探讨Java枚举类型的特性和用法,并通过具体实例说明其优势所在。枚举类型在Java中的引入标志着一种更为类型...
枚举常量可以作为`switch`语句的条件,这是其他数据类型(如字符串)所不具备的。这样可以提高代码的可读性和安全性。 7. 枚举与单例模式: 枚举天然实现了单例模式,因为它们的实例是预定义的并且不能通过new...
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
在枚举中,我们可以定义方法,这些方法可以是抽象的,也可以包含具体实现。例如,我们可以定义一个返回枚举常量名称的方法: ```java public enum Color { RED, GREEN, BLUE; public String getName() { return...
在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库管理系统。在本文中,我们将详细介绍 Java ...
- **枚举元素的实例性质**:枚举中的每个元素实际上是一个对象实例,这意味着可以为这些元素添加额外的属性和行为。例如,为不同的季节分配特定的颜色或温度范围。 - **枚举类的可扩展性**:除了定义枚举元素外,...
Java枚举数据类型是Java 1.5及以后版本引入的一种强大的、类型安全的数据结构,旨在解决传统int常量或String常量表示枚举时存在的问题。在Java中,枚举是一种特殊的类,用于定义一组预定义的常量,这些常量在程序中...
Java 中的枚举类型是一种特殊的数据类型,它允许我们定义一组命名的常量。枚举类型骨子里是一个类别,所以您编译完成后,会产生一个 `.class` 档案。 枚举类型的用法 在 Java 中,我们可以使用 `enum` 关键词来...
枚举类型不仅提供了类型安全,还允许我们在枚举中添加方法和属性,从而增加更多的功能。例如,清单3中的`Student`类使用枚举`Grade`来表示学生的成绩: ```java public class Student { private String firstName;...
Java中的枚举类型`Enum`是面向对象编程中一种强大的工具,它允许程序员定义自己的常量集合。在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`...
总结来说,Java 5引入的枚举类型极大地提高了代码的可读性和安全性,同时提供了灵活的抽象能力,允许我们在枚举中定义方法、属性和构造函数。通过使用枚举,开发者可以更好地管理常量,防止类型错误,并利用`switch`...
总的来说,Java中的枚举是一种强大的特性,提供了类型安全的常量集合,并结合`EnumSet`和`EnumMap`这两个工具类,可以在处理枚举数据时实现高效的编程。理解并善用这些概念,将有助于编写更加可靠和高效的Java代码。
在Java编程语言中,为了能够把基本数据类型当作对象处理,提供了包装类的概念。包装类是将基本数据类型封装成类的形式,使它们可以拥有对象的特性。Java语言中一共有八个基本数据类型,它们分别是byte、short、int、...
在Java中,有八种基本数据类型:byte、short、int、long、float、double、boolean和char。这些基本数据类型的知识点是Java编程的基础,以下是对Java基本数据类型习题的解析。 1. 合法的标识符:Java标识符是由字母...