Java学习总结——枚举

本文详细介绍了Java中的枚举类型,从枚举的简介、定义方法、在程序中的使用,到枚举与枚举关键字的关系,以及类集对枚举的支持。枚举简化了代码,提高了可读性,并在switch语句中使用。枚举类继承自Enum,提供了一系列方法。文章还探讨了使用枚举的注意事项,包括枚举类不能被继承,以及在定义枚举时的规范。
摘要由CSDN通过智能技术生成

拾壹——快速归类整型常数

一、枚举的简介

在 JDK 1.5 以前,Java 并不支持枚举数据类型。在 JDK 1.5,Java 引入的一种新类型——枚举类型( Enumerated Type )。定义时,它使用 enum 关键字标识。例如,表示一周的星期几,用 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY 就可表示为一个枚举。枚举所用的自然表示法让程序更具有可读性。

二、Java 中的枚举

JDK 1.5 以后,Java 语言中新出现的类型诸如枚举类型等一系列新的数据,这些类型的出现表明 Java 日趋完善,编程语言的日益人性化。

1.常见的枚举定义方法

在枚举类型中,一般的定义形式如下:

        enum 枚举名 {枚举值表};

其中 enum 是 Java 中的关键字。在枚举值表中应罗列出所有的可用值,这些值也称为枚举元素。

例如:

        enum WeekDay {Mon,Tue,Wed,Thu,Fri,Sat,Sun};

这里定义了一个枚举类型 WeekDay,枚举值共有 7 个,即一周中的 7 天。凡被说明为 WeekDay 类型变量的取值,只能是这 7 天中的某一天。

枚举变量也可用不同的方式说明,如先定义后说明、定义的同时说明或直接说明。

设有变量 a、b、c 被定义为上述的枚举类型 WeekDay,可采用以下任意一种方式。

        enum WeekDay {Mon,Tue,Wed,Thu,Fri,Sat,Sun};    //先定义
        enum WeekDay a,b,c;    //后说明

或者为:

        enum WeekDay {Mon,Tue,Wed,Thu,Fri,Sat,Sun} a,b,c;    //定义的同时说明

或者为:

        enum {Mon,Tue,Wed,Thu,Fri,Sat,Sun} a,b,c    //直接说明,即定义无名枚举

2.在程序中使用枚举

如果使用 Java 中的 Enum 方法,代码量将大大减少。同时,代码的可修改性可读性也会相应地提高

例如:

        //在Java中使用枚举
        enum MyColor {红色,绿色,蓝色};
        public class EnumColor
        {
            public static void main(String[] args)
            {
                MyColor c1 = MyColor.红色;    //获取红色
                System.out.println(c1);

                MyColor c2 = MyColor.绿色;    //获取绿色
                System.out.println(c2);

                MyColor c3 = MyColor.蓝色;    //获取蓝色
                System.out.println(c3);
            }
        }

通过 Java 提供的枚举类型,可以很轻松地调用枚举中的每一种颜色。而且,使用此方式还可以避免使用接口实现枚举的操作。

3.在 switch 语句中使用枚举

使用 Enum 关键字创建的枚举类型,也可以直接在多处控制语句中使用,如 switch 语句等。在 JDK 1.5 之前,switch 语句只能用于判断字符或数字,它并不能对在枚举中罗列的内容进行判断和选择。而在 JDK 1.5 之后,通过 Enum 创建的枚举类型,也可以被 switch 判断使用。

例如:

        //在Java中使用枚举
        enum MyColor {红色,绿色,蓝色};
        public class EnumSwitch
        {
            public static void main(String[] args)
            {
                MyColor c1 = MyColor.绿色;    //定义MyColor枚举变量c1,并赋值为“绿色”
                switch(c1)    //用switch方式来比较枚举对象
                {
                    case 红色:
                    {
                        System.out.println("红色");
                        break;
                    }

                    case 绿色:
                    {
                        System.out.println("绿色");
                        break;
                    }

                    case 蓝色:
                    {
                        System.out.println("蓝色");
                        break;
                    }
                }
            }
        }

由于 Java 采用的是 Unicode 的字符串编码方式,所以枚举值也可支持中文。由此看出,在 JDK 1.5 之后,switch 同样可以用来判断一个枚举类型,并对枚举类型作出有效选择。这有助于增加代码的可读性和延伸性。

三、枚举和枚举关键字

枚举类型的出现,有助于简洁程序的代码量,减少出错量。在大多数情况下,枚举类和枚举关键字是相互依存的。枚举关键字是定义枚举类型时必不可少的声明,而枚举类则是规定的枚举类型母类。

1.枚举类

枚举类( Enum 类 )是在 Java.lang 包下定义的一个公共类,它的作用是用来构造新的枚举类型。这是在 JDK 1.5 之后 Java 推出的一个新的类。用来弥补关于枚举这一常用集合在 Java 中的不足。同时,Enum 类中的构造方法可方便对代码的操作。

在 JDK API 中可以看到,在 Enum 类中定义了大约十多个方法,每一种方法都是对用 Enum 创建的枚举对象实时操作,所以 Enum 类是一个完整的类型。它拥有自己的方法,当创建一个关于 Enum 的类型对象时,便可调用其中的方法来完善对于枚举类型的操作。

下表列出了 Enum 类中的主要方法:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值