enum枚举

作者: 路盲就是可以看到更多风景 | 来源:发表于2017-10-30 19:03 被阅读20次

    enum枚举_腾讯视频

    1.背景介绍

    enum是什么?

    enum是计算机编程语言中的一种数据类型:枚举类型.

    enum全称enumeration,是jdk1.5中引入的特性,存放于java.lang包中

    枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。

    举个例子,颜色也可以定义成枚举类型,它可以包含你定义的任何颜色,当需要的时候,只需要通过枚举调用即可,另外比如说季节(春夏秋冬)、星期(星期一到星期日)等等这些具有共同投特征的数据都可以定义枚举。

    2.知识剖析

    枚举的使用规定

    枚举的使用规定:

    1:所有枚举值都是静态常量,不是变量,不能在程序中用赋值语句再对它赋值

    2:枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2...只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量

    3:枚举和其他类一样有自己的构造函数

    4:enum不能使用extends关键字继承其他类,因为enum对象已经继承了java.lang.Enum(java是单一继承,不支持多继承)

    3.常见问题

    枚举有什么好处?

    4.解决方案

    1:枚举类型使代码更具可读性,理解清晰,易于维护

    2:没有枚举前,我们定义常量都要使用public static final...有枚举后可以把相关的常量分组到一个枚举类型里

    3:枚举提供了比常量更多的方法

    4: 枚举类型可以将一个类型限制在可控制的范围内。

    5:枚举类型是强类型的,从而保证了系统安全性

    6:  枚举类型的默认值为0,因此,通常给枚举成员包含0值是有意义的,以避免0值游离于预定义集合,导致枚举变量保持非预定义值是没有意义的。

    5.编码实战

    举俩个简单的例子

    6.扩展思考

    什么时候需要使用到枚举

    个人感觉还是范围限定的作用比较重要,多路分发,应该属于应用,int也能实现的。

    比如描述红绿灯,如果用整型来表示,可以用-1表示红灯,1表示绿灯,0表示黄灯,如果能够严格遵守{-1,0,1}这么个取值范围,那也没问题,但是这是需要程序保障,在运行时,不会出现-2、2这样越界的应用。如果用枚举,限定为enum{RED,GREEN,YELLOW},这样就不可能出现越界了(至少在编译期就提示错误了)。

    7.参考文献

    http://www.cnblogs.com/zhaoyanjun/p/5659811.html

    http://blog.sina.com.cn/s/blog_4adc4b090101dtxp.html

    8.更多讨论

    ppt链接:https://ptteng.github.io/PPT/PPT-java/enum.html#/

    相关文章

      网友评论

        本文标题:enum枚举

        本文链接:https://www.haomeiwen.com/subject/yyrmpxtx.html