Java枚举,也称作Java枚举类型,是一种字段由一组固定常量集合组成的类型。枚举的主要目的是加强编译时类型的安全性。enum关键字是Java中的保留关键字。
在编译或设计时,当我们知道所有变量的可能性时,尽量使用枚举类型。本篇文章就带大家全面系统的了解枚举的使用,以及会遇到的一些问题。
Java中的枚举
枚举通常是一组相关的常量集合,其他编程语言很早就开始用枚举了,比如C++。从JDK1.5起,Java也开始支持枚举类型。
枚举是一种特殊的数据类型,它既是一种类(class)类型却又比类类型多了些特殊的约束,这些约束也造就了枚举类型的简洁性、安全性以及便捷性。
在Java中,通过enum来声明枚举类型,默认继承自java.lang.Enum。所以声明枚举类时无法再继承其他类。
枚举声明
在生活中我们会经常辨认方向,东南西北,它们的名称、属性等基本都是确定的,我们就可以将其声明为枚举类型:
- public enum Direction {
- EAST, WEST, NORTH, SOUTH;
- }
同样,每周七天也可以声明成枚举类型:
- enum Day {
- MONDAY, TUESDAY, WEDNESDAY,
- THURSDAY, FRIDAY, SATURDAY, SUNDAY
- }
在没有枚举或没使用枚举的情况下,并不是说不可以定义变量,我们可以通过类或接口进行常量的定义:
- public class Day {
- public static final int MONDAY =1;
- public static final int TUESDAY=2;
- public static final int WEDNESDAY=3;
- public static final int THURSDAY=4;
- public static final int FRIDAY=5;
- public static final int SATURDAY=6;
- public static final int SUNDAY=7;
- }
但这样存在许多不足,如在类型安全和使用方便性上。如果存在定义int值相同的变量,混淆的几率还是很大的,编译器也不会提出任何警告。因此,当能使用枚举的时候,并不提倡这种写法。