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#/
网友评论