`

JAVA 枚举7种方式总结

    博客分类:
  • Java
 
阅读更多

DK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。

用法一:常量

JDK1.5之前,我们定义常量都是:publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

 

Java代码 复制代码
  1. publicenum Color {
  2. RED, GREEN, BLANK, YELLOW
  3. }

 

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

 

Java代码 复制代码
  1. enum Signal {
  2. GREEN, YELLOW, RED
  3. }
  4. publicclass TrafficLight {
  5. Signal color = Signal.RED;
  6. publicvoid change() {
  7. switch (color) {
  8. case RED:
  9. color = Signal.GREEN;
  10. break;
  11. case YELLOW:
  12. color = Signal.RED;
  13. break;
  14. case GREEN:
  15. color = Signal.YELLOW;
  16. break;
  17. }
  18. }
  19. }

 

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且Java要求必须先定义enum实例。

 

Java代码 复制代码
  1. publicenum Color {
  2. RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  3. // 成员变量
  4. private String name;
  5. privateint index;
  6. // 构造方法
  7. private Color(String name, int index) {
  8. this.name = name;
  9. this.index = index;
  10. }
  11. // 普通方法
  12. publicstatic String getName(int index) {
  13. for (Color c : Color.values()) {
  14. if (c.getIndex() == index) {
  15. return c.name;
  16. }
  17. }
  18. returnnull;
  19. }
  20. // get set 方法
  21. public String getName() {
  22. return name;
  23. }
  24. publicvoid setName(String name) {
  25. this.name = name;
  26. }
  27. publicint getIndex() {
  28. return index;
  29. }
  30. publicvoid setIndex(int index) {
  31. this.index = index;
  32. }
  33. }

 

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

 

Java代码 复制代码
  1. publicenum Color {
  2. RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  3. // 成员变量
  4. private String name;
  5. privateint index;
  6. // 构造方法
  7. private Color(String name, int index) {
  8. this.name = name;
  9. this.index = index;
  10. }
  11. //覆盖方法
  12. @Override
  13. public String toString() {
  14. returnthis.index+"_"+this.name;
  15. }
  16. }

 

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java不支持多继承,所以枚举对象不能再继承其他类。

 

Java代码 复制代码
  1. publicinterface Behaviour {
  2. void print();
  3. String getInfo();
  4. }
  5. publicenum Color implements Behaviour{
  6. RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  7. // 成员变量
  8. private String name;
  9. privateint index;
  10. // 构造方法
  11. private Color(String name, int index) {
  12. this.name = name;
  13. this.index = index;
  14. }
  15. //接口方法
  16. @Override
  17. public String getInfo() {
  18. returnthis.name;
  19. }
  20. //接口方法
  21. @Override
  22. publicvoid print() {
  23. System.out.println(this.index+":"+this.name);
  24. }
  25. }

 

用法六:使用接口组织枚举

 

Java代码 复制代码
  1. publicinterface Food {
  2. enum Coffee implements Food{
  3. BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
  4. }
  5. enum Dessert implements Food{
  6. FRUIT, CAKE, GELATO
  7. }
  8. }

 

用法七:关于枚举集合的使用

java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

分享到:
评论

相关推荐

    java枚举实例代码

    总结来说,Java枚举提供了一种安全、可读的方式来处理一组预定义的常量。通过枚举,我们可以避免硬编码常量,减少错误,提高代码的可维护性。在实际开发中,枚举常用于定义状态、角色、类型等固定集合的场景。通过...

    简单总结java枚举类型

    Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...

    Java枚举类型Enum的用法

    总结来说,Java枚举类型提供了一种安全、类型安全的方式来定义和使用常量,它可以拥有构造器、方法和字段,并能与switch语句、序列化、反射等Java特性很好地结合。理解并熟练使用枚举,能够使代码更加清晰、易读,...

    java枚举类型说明

    ### Java枚举类型详解 ...Java枚举类型是一种强大且灵活的工具,它不仅提高了代码的可读性和可维护性,还增强了类型安全性。通过理解和利用枚举类型的特性,开发者可以编写出更加健壮和高效的程序。

    java枚举,以及自己总结的两个示例.xmind

    如有侵权请联系删除,欢迎批评指正 java枚举,起初在网上抄了一部分,然后自己加了点示例,做一个记录,也算是为以后留个备份,技术小白一个,还在努力成长

    理解java枚举类型

    总结,Java枚举类型是一种强大的工具,可以用于表示固定数量的常量。它们提供了一种安全、类型化的方式,避免了硬编码常量,增加了代码的可读性和可维护性。通过构造函数、方法、接口实现等特性,枚举可以适应各种...

    java 枚举类总结

    ### Java 枚举类总结 #### 一、概述与基本概念 枚举类型(`enum`)是Java中的一种特殊类,它允许开发者定义一组命名的常量,并将其视为一个独立的类型。从JDK 1.5版本开始,Java引入了枚举类型,它提供了一种更加...

    高阶Java-Java枚举类型 enum 应用详解

    Java枚举提供了一种强大的方式来定义和管理一组相关的常量。它们不仅可以存储数据,还可以包含方法,实现接口,甚至使用构造器进行初始化。枚举的这些特性使其在设计模式、数据模型、状态机等多种场景中都有广泛应用...

    Java枚举类型.pdf

    总结起来,Java枚举类型是一个强大的工具,它可以替代`static final`常量来表示一组固定的值,提供类型安全、易于维护的代码。通过枚举,我们可以更方便地管理常量,减少错误,并增加代码的灵活性。枚举是Java中一个...

    Java中的“枚举类型

    在Java编程语言中,枚举(Enum)作为一种特殊的类,其设计初衷是为了更好地处理一组固定不变的常量集合。相较于传统的使用`static final`字段来表示常量的做法,枚举提供了更加丰富的特性和更为严谨的类型安全机制。...

    Java高新技术_java5的枚举的基本应用

    Java枚举可以实现接口,也可以拥有字段和方法,因此可以用来创建复杂的枚举集。例如,可以定义一个表示星期几的枚举,并为每个枚举值添加额外的属性或行为: ```java public enum DayOfWeek implements Comparable...

    JAVA枚举类型的用法详解

    总结起来,Java枚举类型提供了丰富的功能,包括但不限于定义常量、属性、方法,以及实现抽象方法。这种类型使得代码更加规范,提高了代码的可读性和可维护性,减少了错误的可能性。在处理一组固定不变的值时,使用...

    谈谈你可能并不了解的java枚举

    Java枚举远不止简单的枚举常量集合,它提供了一种类型安全、易于理解和使用的方式来表示有限的、固定的值集合。通过深入理解枚举的内部机制和高级特性,我们可以编写出更加优雅、高效和易于维护的代码。因此,对枚举...

    Java枚举的七种常见用法总结(必看)

    下面是Java枚举的七种常见用法的详细说明: 1. 常量用法: 在Java中,枚举可以用于组织一组相关的常量。在JDK 1.5之前,我们通常使用`public static final`关键字来定义常量,但这种方式不够灵活。枚举提供了一种...

    java 枚举(enum) 详解(学习资料)

    总结来说,Java 枚举提供了一种强类型、安全且易于使用的机制,用于表示一组固定数量的值。它简化了代码,提高了程序的可读性和可维护性,同时也避免了传统的常量类或单例模式的一些潜在问题。通过深入理解和灵活...

    java 枚举遍历键值对 属性类Properties 类加载器

    总结来说,Java的枚举提供了一种安全的方式来定义和管理一组相关的常量,便于遍历和操作。Properties类则用于处理键值对数据,常用于配置文件的读取和写入。类加载器则帮助我们找到并加载类及其相关的资源,如...

    java-枚举总结【从入门到项目总结】

    关于java枚举的总结: 从入门介绍到项目使用的实际经验归纳总结得出! 从jdk5到jdk8!

    Java枚举数据类型.pdf

    总结来说,Java枚举类型是int枚举模式和String枚举模式的完美替代品。它不仅提供了更为严格和清晰的类型安全特性,还极大地提升了代码的可读性和易用性。在现代Java应用中,枚举类型被广泛用于替代旧有的枚举模拟...

    通过枚举反向给实体类赋值

    在Java编程中,枚举类型(Enum)是一种强大的工具,用于定义一组固定的常量。它在许多场景下比使用字符串或整数常量更安全、更易于管理。然而,在实际开发中,我们经常需要将枚举值反向映射到实体类的属性上,以便在...

Global site tag (gtag.js) - Google Analytics