枚举类型是j2se在1.5引入的新的类型,通过关键字enum来定义,常用来存储一些常量.
1.定义一个简单的枚举类型
public enum Sex { MAN, WOMAN }
枚举类型本质是类,编译此段代码会生成.class文件.
通过Sex.MAN来访问Sex中的成员,其返回值是Sex类型.
2.常用方法
静态的values()方法,可获取所有成员变量并以数组形式返回;从Object继承的toString()方法被重写;静态的valueOf()方法,可以尝试将指定的String类型转换为枚举类型;ordinal()方法,获取枚举成员的索引;compareTo()方法,比较两个枚举成员的顺序.
public class EnumDemo2 { public static void main(String[] args) { for (Sex sex : Sex.values()) { System.out.println(sex); } } }
执行此段代码,可遍历输出枚举中的所有成员,运行结果:
MAN
WOMAN
3.在switch中应用
在switch中使用枚举类型,增加了程序的可读性.
public class EnumDemo3 { private enum Sex { MAN, WOMAN } public static void showSex(Sex sex) { switch (sex) { case MAN: System.out.println("男"); break; case WOMAN: System.out.println("女"); break; } } public static void main(String[] args) { showSex(Sex.WOMAN); } }
运行结果:
女
此段代码中showSex()方法接收的变量必须是Sex枚举类型,如果输入其他类型的变量,编译器会报告错误;如果上述switch中加入了不属于Sex中的枚举值,编译器也会报告错误.注意,此段代码中枚举声明方式与声明内部类相同,编译完成后,会产生额外的.class文件,在本例中生成的是EnumDemo3$Sex.class.
4.深入枚举类型
使用enum定义的枚举类型都是继承java.lang.Enum类,每一个成员都是枚举类型的一个实例,默认是final的,同时也是public和static的,与类中的静态常量相同,可以通过类名直接使用.
4.1.在枚举中定义属性和方法
public enum Sex { MAN, WOMAN; public String name; public void show() { System.out.println(this.name); } }
注意,枚举成员必须写在最前面,否则编译出错.
4.2.构造方法
public enum Sex { MAN, WOMAN; public String name; private Sex() { } private Sex(String name) { this.name = name; } }
枚举类型的构造方法必须是私有的,可以形成重载;如果枚举中只含有一个成员,则与单例模式相似.
4.3.成员匿名类
每一个成员可以调用构造方法,定义属性和方法(暂时不知有何用处),重写枚举中的方法.
public enum Sex { MAN() { public void show() { System.out.println("man"); } }, WOMAN("name") { public int age; public void test() { } }; private Sex() { } private Sex(String name) { } public void show() { System.out.println("sex"); } } public class EnumDemo4 { public static void main(String[] args) { for (Sex sex : Sex.values()) { sex.show(); } } }
编译完成后,会生成Sex$1.class和Sex$2.class文件,运行结果:
man
sex
5.实现接口
由于枚举已经继承Enum类,不能在继承其他类,但可以实现接口.
public interface I { void i(); } public enum Sex implements I { MAN() { public void i() { System.out.println("man"); } }, WOMAN() { }; public void i() { System.out.println("sex"); } } public class EnumDemo5 { public static void main(String[] args) { for (Sex sex : Sex.values()) { sex.i(); } } }
运行结果:
man
sex
6.在集合中使用
java.util.EnumSet和java.util.EnumMap是两个枚举集合.
EnumSet保证元素不重复;EnumMap中的key值是Enum类型,value值可以使任意类型.
小结:枚举类型与接口类型类似,是特殊的类,用来存储一些常量的集合.在switch中应用可提高程序的可读性.所有的枚举类型都继承自Enum类,可以有私有的构造方法以及属性和方法.可以实现接口,也可以在集合中应用.
相关推荐
接下来,我们将深入探讨Java枚举类型的使用方法及其相关知识点。 1. **枚举的声明与初始化** 枚举类型的声明方式类似于类,但以`enum`关键字开头。例如: ```java enum Color { RED, GREEN, BLUE } ``` 这里...
本文将详细介绍如何在Java中使用枚举类型,并通过一个具体的例子来展示其优势。 #### 二、枚举类型概述 **枚举类型**是一种特殊的类,用于定义一组有限的固定常量。枚举类型可以提供更好的类型安全性和编译时检查...
- **定义**: 使用`enum`关键字定义枚举类型,可以在枚举类型中定义一组固定的值,这些值都是该枚举类型的实例。 - **实例**: 枚举类型的每一个值都可以看作是该枚举类型的一个实例。例如,在上面的例子中,`Grade`...
枚举的初始化通常是在枚举类型中定义常量时进行的,但也可以通过构造函数实现更复杂的初始化: ```java public enum Shape { CIRCLE(3.14), SQUARE(4); private double constant; Shape(double c) { this....
Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...
Java枚举类型是Java语言中的一种特殊的类,用于定义一组固定的常量集合。它在Java中扮演着重要的角色,提供了一种安全、类型化的常量表示方式,比传统的final static变量更具有优势。理解Java枚举类型对于编写高质量...
总结起来,Java枚举类型是一个强大的工具,它可以替代`static final`常量来表示一组固定的值,提供类型安全、易于维护的代码。通过枚举,我们可以更方便地管理常量,减少错误,并增加代码的灵活性。枚举是Java中一个...
在枚举类型中,还可以定义抽象方法,所有枚举常量必须实现这些方法。这种模式被称为"枚举伴生对象",可以用来为每个枚举常量提供不同的行为。例如: ```java public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY,...
在 Java 中,我们可以使用 `enum` 关键词来定义枚举类型。枚举类型的定义方式类似于类别的定义,但是它只能包含常量。例如: ```java public enum Action { TURN_LEFT, TURN_RIGHT, SHOOT } ``` 在上面的示例中,...
例如,在添加或减少工站类型时,我们只需要在枚举类型中修改,而不需要修改大量的代码。 本文介绍了一种使用Java中枚举类型的方式,通过使用枚举类型,我们可以简化代码,提高代码的可读性和可维护性。
Java 中使用关键字 enum 来定义一个枚举类型。例如: ```java public enum Season { SPRING, SUMMER, AUTUMN, WINTER; } ``` 特点 Java 定义枚举类型的语句很简约。它有以下特点: 1. 使用关键字 enum 2. 类型...
一个关于JAVA枚举类型的MHT文件,包含JAVA枚举类型的用法,以及JDK版本的问题。
枚举类型非常适合与Java的`switch`语句配合使用,因为它们之间的类型检查更为严格,确保了在枚举中定义的所有可能性都被覆盖。 ```java DayOfWeek day = DayOfWeek.MONDAY; switch (day) { case MONDAY: System....
本资源"Java源码查看枚举类型定义.rar"包含了关于Java枚举类型的详细解释和实例,旨在帮助开发者深入理解这一特性。 首先,枚举类型在Java中通过关键字`enum`声明。例如: ```java public enum Color { RED, ...
### Java 枚举类型 enum 的使用详解 #### 一、枚举类型概述 在 Java 中,枚举(enum)是一种特殊的类,它被用来表示一组固定的常量值。枚举类型自 JDK 1.5 开始引入,为开发者提供了一种更加安全、简洁的方式来...
java枚举结果类、根据状态值获取枚举值 Controller: /** 模块类型枚举 */ model.addAttribute("mType", ModuleTypeEnum.ModuleTypeShow()); ftl: value="${mType.key}:${mType.value}” </#list>
### Java中的“枚举类型”知识点详解 #### 一、引言 在Java编程语言中,枚举(Enum)作为一种特殊的类,其设计初衷是为了更好地处理一组固定不变的常量集合。相较于传统的使用`static final`字段来表示常量的做法...
下面我们将深入探讨Java枚举类型的常见用法。 首先,枚举类型在本质上等同于定义了一组静态常量。创建枚举类型的语法如下: ```java public enum Belle { para1, para2, para3, para4; } ``` 这会创建一个名为`...
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
- **成员变量**:枚举类型中的每个成员都是一个实例,可以直接通过枚举类型名访问。 - **方法**:枚举可以像普通类一样包含方法,包括构造器、实例方法和静态方法。 - **自动实现接口**:枚举类型会自动实现`java....