枚举
1、枚举简介
枚举,是java中的一种比较特殊的class,它继承了java.lang.Enum类,也就是说在枚举类中是不能够继承其他类的。枚举类型可以取代以往常量的定义方式,即将常量封装在类或接口中。此外,枚举类型还提供了安全检查功能。枚举类型本质上还是以类的形式存在
以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用了,并且该常量不能被修改,因为在接口中定义的常量时,该常量的修饰符为final与static。
public interface Color
{
public static final int RED = 1;
public static final int GREEN = 2;
public static final int BLUE = 3;
}
使用枚举定义常量的语法如下:
public enum ColorEnum
{
RED,
GREEN,
BLUE,
}
常量声明 会有一些问题,比如
-
类型不安全。比如在一个方法中要求传入形参,用常量的话,形参就是int类型,开发者传入任意类型的int类型值就可以,但是如果是枚举类型的话,那就只能传入枚举类中包含的对象。
-
没有命名空间。开发者要在命名的时候以一定的格式来确定这个常量的使用范围,比如是四季的话就是SPRING表示春天,这样另外一个开发者再看这段代码的时候才知道这四个常量分别代表季节。
命名规范:
final常量:使用大写字母命名,并且中间使用下划线进行连接。
enum枚举:使用大写字母命名,并且中间使用下划线进行连接。
public static void doit(ColorEnum c)
{
switch (c)
{
case RED:
System.out.<