`

Java 枚举7常见种用法

阅读更多
引自:http://softbeta.iteye.com/blog/1185573

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

用法一:常量

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





Java代码 复制代码 收藏代码
1.public enum Color { 
2.  RED, GREEN, BLANK, YELLOW 
3.} 

 
用法二:switch

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





Java代码 复制代码 收藏代码
1.enum Signal { 
2.    GREEN, YELLOW, RED 
3.} 
4.public class TrafficLight { 
5.    Signal color = Signal.RED; 
6.    public void 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.public enum Color { 
2.    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); 
3.    // 成员变量 
4.    private String name; 
5.    private int index; 
6.    // 构造方法 
7.    private Color(String name, int index) { 
8.        this.name = name; 
9.        this.index = index; 
10.    } 
11.    // 普通方法 
12.    public static String getName(int index) { 
13.        for (Color c : Color.values()) { 
14.            if (c.getIndex() == index) { 
15.                return c.name; 
16.            } 
17.        } 
18.        return null; 
19.    } 
20.    // get set 方法 
21.    public String getName() { 
22.        return name; 
23.    } 
24.    public void setName(String name) { 
25.        this.name = name; 
26.    } 
27.    public int getIndex() { 
28.        return index; 
29.    } 
30.    public void setIndex(int index) { 
31.        this.index = index; 
32.    } 
33.} 

 
用法四:覆盖枚举的方法

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





Java代码 复制代码 收藏代码
1.public enum Color { 
2.    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); 
3.    // 成员变量 
4.    private String name; 
5.    private int 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.        return this.index+"_"+this.name; 
15.    } 
16.} 

 
用法五:实现接口

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





Java代码 复制代码 收藏代码
1.public interface Behaviour { 
2.    void print(); 
3.    String getInfo(); 
4.} 
5.public enum Color implements Behaviour{ 
6.    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); 
7.    // 成员变量 
8.    private String name; 
9.    private int 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.        return this.name; 
19.    } 
20.    //接口方法 
21.    @Override 
22.    public void print() { 
23.        System.out.println(this.index+":"+this.name); 
24.    } 
25.} 

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





Java代码 复制代码 收藏代码
1.public interface 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枚举的七种常见用法.doc

    Java枚举的七种常见用法.doc

    JAVA枚举类型的用法详解

    JAVA枚举类型的用法详解 例举了JAVA 枚举类型常见用法

    java枚举ppt和详细代码

    Java枚举可以方便地与集合框架一起使用。枚举类可以继承`EnumSet`或`EnumMap`,这两个类提供了针对枚举的优化操作。例如: ```java EnumSet<Color> colors = EnumSet.allOf(Color.class); ``` 通过学习上述知识...

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

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

    Java枚举(enum) 详解7种常见的用法

    以下将详细介绍7种常见的Java枚举用法: 1. **常量用法**: 在JDK 1.5之前,我们通常使用`public static final`关键字来定义常量。但自从引入枚举后,我们可以将相关联的常量组织到同一个枚举类型中,如`Color {...

    java中枚举的使用

    在Java编程语言中,枚举(Enumeration)是一种特殊的类,用于定义一组固定的常量。它在JDK 1.5及以后的版本中被引入,为开发者提供了更安全、更面向对象的方式来处理常量集合。枚举在Java中的使用不仅提高了代码的...

    Java手动方式创建枚举类示例

    Java手动方式创建枚举类是一种常见的编程方法,在Java中可以使用枚举类型来定义一组具有相同特征的常量。通过手动方式创建枚举类,可以更好地控制枚举类型的行为和特性。在本文中,我们将通过一个实例来介绍Java手动...

    Java关于中文乱码问题的多种解决方法

    本文将深入探讨几种解决Java中中文乱码问题的方法,并以MyEclipse为开发环境,结合实际示例进行讲解。 1. 文件读写中的乱码: 当Java程序读取或写入包含中文字符的文件时,需要设置正确的字符编码。例如,使用`...

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

    首先,我们需要理解枚举的常见用法。枚举类型定义如下: ```java public enum Color { RED("红色"), GREEN("绿色"), BLUE("蓝色"); private String desc; Color(String desc) { this.desc = desc; } ...

    Java枚举类的使用与注解

    一、枚举类的使用: 1.枚举类的理解:类的对象只有有限个,确定的。我们称此为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类。 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举...

    JAVA可以反编译枚举的反编译工具

    "JAVA可以反编译枚举的反编译工具"这个标题表明我们讨论的是专门针对Java枚举类型的反编译工具。 枚举类型在Java中是一种特殊的类,用于定义一组预定义的常量。它们在代码中广泛用于表示有限集合,如状态、方向或...

    java enum枚举教程学习资料

    Java枚举(enum)是Java语言提供的一种特殊的数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中是类的子类型,因此,它们具备类的一些特性,比如可以有方法、变量以及实现接口。...

    通过表格中数据自动生成枚举和方法(内涵使用教程)

    Excel文件作为一种常见的数据存储格式,可以方便地编辑和组织大量信息。在C#中,我们可以使用诸如`EPPlus`这样的库来读取和操作Excel文件。`EPPlus`允许你轻松地访问Excel工作表,单元格,以及它们的数据。 在获取...

    java enum 枚举的spring boot2.x完美实现demo源码

    综上所述,`java enum 枚举的spring boot2.x完美实现demo源码`示例主要展示了如何在Spring Boot 2.x项目中使用枚举类型,包括枚举的定义、属性和方法的添加,以及如何在实际业务场景中应用枚举,如与数据库的交互和...

    javaenum(枚举)使用详解+总结.pdf

    下面我们将深入探讨enum的使用方法、特性以及常见的操作。 1. **枚举定义** 创建枚举类型的语法非常简洁,只需使用`enum`关键字,如下所示: ```java public enum Color { RED, GREEN, BLUE } ``` 这里定义...

    浅析对java枚举类型的认识

    浅析对java枚举类型的认识 java 枚举类型是 java 语言中的一种特殊类型,用于定义一组固定的常量。枚举类型可以看作是一种特殊的类,但它有着不同的特性和用途。下面我们来详细讲解 java 枚举类型的知识点。 一、...

    Java 7编程高级进阶源代码

    Java 7还增强了枚举类型,引入了枚举套接字(enum sets)和枚举switch语句,使得枚举的使用更加灵活和强大。枚举套接字是一种高效的无重复元素集合,而枚举switch可以匹配任意枚举类型的值,避免了漏掉case的情况。 ...

    Java的枚举enum示例详解

    枚举的常见用法包括获取枚举元素、获取成员变量、枚举遍历和switch条件判断等。 3.1 获取枚举元素 可以通过枚举的名称直接获取枚举元素,例如Quarter.SPRING。也可以使用toString()方法将枚举元素转化为String类型...

    JAVA基础,常见java基础问题(1).zip

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而著名。"JAVA基础,常见java基础问题(1).zip"这个压缩包很可能是为了帮助初学者或有经验的开发者复习和解决他们在学习Java过程中遇到的...

    Java考试常见122题

    10. **枚举与注解**: 枚举的创建和使用,以及注解的定义、元注解和自定义注解的使用场景。 11. **JNI(Java Native Interface)**: 它允许Java代码和其他语言写的代码进行交互,如调用C/C++的库。 12. **垃圾回收...

Global site tag (gtag.js) - Google Analytics