1. enum用于常量
- 在JDK1.5之前可以使用public static final来定义常量,现在可以使用enum,而且枚举提供了比常量更多的方法。
- public enum Color{
- Red, White, Blue, Black
- }
- public class ColorTest{
- public static void main(String[] args){
- Color myColor = Color.Blue;
- System.out.println(myColor);
- System.out.println("----------------");
- for(Color color : Color.values()){
- System.out.println(color);
- }
- }
- }
- 运行结果:
- Blue
- ----------------
- Red
- White
- Blue
- Black
2. enum使用switch
- enum使用switch,可以提高代码的可读性。
- public class EnumTest{
- public static void doOp(OpConstant opConstant){
- switch (opConstant){
- case TURN_LEFT:
- System.out.println("向左转");
- break;
- case TURN_RIGHT:
- System.out.println("向右转");
- break;
- case SHOOT:
- System.out.println("射击");
- break;
- }
- }
- public static void main(String[] args){
- doOp(OpConstant.TURN_LEFT);
- }
- }
- enum OpConstant{
- TURN_LEFT, TURN_RIGHT, SHOOT
- }
- 运行结果:
- 向左转
3. enum中添加新方法
- 要想使用penny("hello"), nickel("world");样式的枚举,就要实现
- 1) value属性
- 2) value属性的构造方法
- 3) getValue()方法
- public enum Coin{
- penny("hello"), nickel("world"), dime("welcome"), quarter("hello world");
- private String value;
- public String getValue(){
- return value;
- }
- Coin(String value){
- this.value = value;
- }
- public static void main(String[] args){
- Coin coin = Coin.quarter;
- System.out.println(coin.getValue());
- }
- }
- public class ShowEnum{
- public static void main(String[] args){
- enumCompareTo(OpConstant.valueOf(args[0]));
- }
- public static void enumCompareTo(OpConstant constant){
- System.out.println(constant);
- for(OpConstant c : OpConstant.values()){
- System.out.println(constant.compareTo(c));
- }
- }
- }
- 运行输入参数:
- TURN_RIGHT
- 运行结果:
- TURN_RIGHT
- 1
- 0
- -1
- values()方法
- ordinal()方法返回顺序
- public class ShowEnum2{
- public static void main(String[] args){
- for(OpConstant c : OpConstant.values()){
- System.out.printf("%d, %s, %n", c.ordinal(), c);
- }
- }
- }
- 运行结果:
- 0, TURN_LEFT,
- 1, TURN_RIGHT,
- 2, SHOOT,
4. enumSet示例
- 1. EnumSet的of()方法和complementOf()方法
- import java.util.EnumSet;
- import java.util.Iterator;
- enum FontConstant{
- Plain, Bold, Italilc, Hello
- }
- public class EnumSetDemo{
- public static void main(String[] args){
- EnumSet<FontConstant> enumSet = EnumSet.of(FontConstant.Plain);
- showEnumSet(enumSet);
- System.out.println("-------");
- showEnumSet(EnumSet.complementOf(enumSet));
- }
- public static void showEnumSet(EnumSet<FontConstant> enumSet) {
- for(Iterator<FontConstant> iter = enumSet.iterator(); iter.hasNext();){
- System.out.println(iter.next());
- }
- }
- }
- 运行结果:
- Plain
- -------
- Bold
- Italilc
- Hello
- 2. EnumSet的noneOf()方法
- import java.util.EnumSet;
- import java.util.Iterator;
- public class EnumSetDemo2{
- public static void main(String[] args){
- EnumSet<FontConstant> enumSet = EnumSet.noneOf(FontConstant.class);
- enumSet.add(FontConstant.Bold);
- enumSet.add(FontConstant.Italilc);
- showEnumSet(enumSet);
- }
- public static void showEnumSet(EnumSet<FontConstant> enumSet){
- for(Iterator<FontConstant> iter = enumSet.iterator(); iter.hasNext();){
- System.out.println(iter.next());
- }
- }
- }
- 运行结果:
- Bold
- Italilc
- 3. EnumSet的copyOf()方法
- import java.util.ArrayList;
- import java.util.EnumSet;
- import java.util.Iterator;
- import java.util.List;
- public class EnumSetDemo3{
- public static void main(String[] args){
- List<FontConstant> list = new ArrayList<FontConstant>();
- list.add(FontConstant.Bold);
- list.add(FontConstant.Italilc);
- list.add(FontConstant.Plain);
- showEnumSet(EnumSet.copyOf(list));
- }
- public static void showEnumSet(EnumSet<FontConstant> enumSet){
- for(Iterator<FontConstant> iter = enumSet.iterator(); iter.hasNext();){
- System.out.println(iter.next());
- }
- }
- }
- 运行结果:
- Plain
- Bold
- Italilc
5. enumMap示例
- 遍历的顺序和枚举的顺序一致。
- import java.util.EnumMap;
- import java.util.Map;
- public class EnumMapDemo{
- public static void main(String[] args){
- Map<Action, String> map = new EnumMap<Action, String>(Action.class);
- map.put(Action.TURN_RIGHT, "向右转");
- map.put(Action.SHOOT, "射击");
- map.put(Action.TURN_LEFT, "向左转");
- for (Action action : Action.values()){
- System.out.println(map.get(action));
- }
- }
- }
- enum Action{
- TURN_LEFT, TURN_RIGHT, SHOOT;
- }
- 运行结果:
- 向左转
- 向右转
- 射击
6. enum应用
- 枚举实际应用:控制权限。
- public enum AccessRight{
- MANAGER, DEPARTMENT, EMPLOYEE;
- }
- public class AccessControl{
- public static boolean checkRight(AccessRight accessRight){
- if(accessRight == AccessRight.MANAGER){
- return true;
- }
- else if(accessRight == AccessRight.DEPARTMENT){
- return false;
- }
- return false;
- }
- public static void main(String[] args){
- AccessRight accessRight = AccessRight.valueOf("MANAGER");
- System.out.println(checkRight(accessRight));
- }
- }
- 运行结果:
- true
本文转自:http://andrew7676.iteye.com/blog/2432209
相关推荐
Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...
Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类...
Java Enum 枚举学习资料是 Java 编程语言中的一种特殊类型,它主要用来实现一组固定的常量。 Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举语法 在 Java 中,枚举类型...
本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...
在 Java 中,枚举(enum)是一种特殊的类,它被用来表示一组固定的常量值。枚举类型自 JDK 1.5 开始引入,为开发者提供了一种更加安全、简洁的方式来处理一组固定的数据集合。枚举中的每个元素都是该枚举类型的对象...
Java中的枚举(enum)类型是在JDK 1.5版本引入的一个强大的特性,它用于定义一组相关的常量。在C/C++等语言中,枚举通常用来表示一组具有固定值的常量集合,但在Java中,枚举不仅限于此,它提供了更多的功能和灵活性...
Java枚举支持单例模式,因为每个枚举常量都是唯一的,不能通过`new`关键字实例化。此外,枚举类型的枚举常量可以按照声明顺序自然排序,这使得它们在处理有序数据时非常方便。 枚举类型还可以与其他集合框架结合...
在Java编程语言中,`Enum`(枚举)是一种特殊的类类型,用于定义固定的、预定义的常量集合。它们在程序设计中扮演着重要的角色,特别是在需要表示一组固定值时,如状态、颜色、星期等。本资源包提供了一些关于`Enum`...
这篇博客将深入探讨Java枚举的特性和使用方法,包括`EnumSet`和`EnumMap`这两个与枚举相关的数据结构。 首先,枚举定义的基本语法是`public enum EnumName {constant1, constant2, ...}`。每个枚举常量都是`...
Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...
### Java中的Enum深入解析 #### 引言 在Java编程语言中,`Enum`是一种特殊的数据类型,用于处理一组固定的常量。它不仅提供了一种更安全、更灵活的方式来表示一组固定的选择,还包含了丰富的内置功能,使得枚举...
#### 二、Java枚举的基本概念 1. **什么是Java枚举?** - 枚举(`enum`)是Java中的一种特殊类,它只能包含固定数量的实例。 - 枚举中的每个元素都是该类型的实例,它们是类的成员,并且默认是静态和final的。 - ...
枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-master"显然是一个用于演示如何通过反射来操作枚举类的示例。 首先,让我们理解枚举类的基本概念。枚举类在Java中用于定义...
Java 中枚举类 enum 的 values() 方法详解 Java 中的枚举类 enum 是一种特殊的类,通过使用 enum 关键字来定义。枚举类 enum 中有一个特殊的方法,values(),这个方法可以将枚举类转换为一个枚举类型的数组。通过...
Java 枚举(enum)是 Java 语言中的一个重要特性,自 Java 5 开始引入。枚举用于定义一组相关的常量,这些常量通常代表一个有限的、预定义的值集合。枚举类是一种特殊的类,它具有以下特点: 1. **枚举类的声明**:...
Java 中使用关键字 enum 来定义一个枚举类型。例如: ```java public enum Season { SPRING, SUMMER, AUTUMN, WINTER; } ``` 特点 Java 定义枚举类型的语句很简约。它有以下特点: 1. 使用关键字 enum 2. 类型...
本文将深入探讨Java枚举类型的特点、用法以及最佳实践。 Java中的枚举类型是一种强大的特性,它提供了一种类型安全的方式来表示一组固定的常量。枚举类型可以包含字段、方法和构造器,使得它们可以携带额外的信息和...
Java枚举(enum)是Java语言提供的一种特殊的数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中是类的子类型,因此,它们具备类的一些特性,比如可以有方法、变量以及实现接口。...