Enum枚举

java分享会

分享人:北京分院 于博韬

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

枚举是一个比较重要的知识点

在之前做任务的时候简单的接触了一下,所以这次给大家介绍一下,抛砖引玉

那我们就开始吧

2.知识剖析

值类型枚举 (enumeration),是值类型的一种特殊形式, 它从 System.Enum 继承,并为基础基元类型的值提供备用名称。枚举类型有名称、基础类型和一组字段。 基础类型必须是一个内置的有符号(或无符号)整数类型(如 Byte、Int32 或 UInt64)。 字段是静态文本字段,其中的每一个字段都表示常数。 所使用的语言给每个字段都分配一个基础类型的特定值。

java中的枚举类可以有构造函数、可以实现接口,但不能继承任何类,其在编译以后默认继承jdk内部的枚举类。

3.常见问题

那么问题来了

什么时候需要使用枚举

4.解决方案

当我们对于一些比较固定的常量的时候,使用枚举是很好的方法

在程序中这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。

例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。

对于上述这种情况就比较适合使用枚举了

5.编码实战

这里需要加点东西~

enum 的语法结构尽管和 class 的语法不一样,但是经过编译器编译之后产生的是一个class文件。 该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum。 所以,实际上 enum 就是一个 class,只不过 java 编译器帮我们做了语法的解析和编译而已。 可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法, 不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。

6.扩展思考

在例子中,以逗号隔开的,最后以分号结尾的,这部分叫做,这个枚举的实例。

也可以理解为,class new 出来的实例对象。这下就好理解了。只是,class,new对象, 可以自己随便new,想几个就几个,而这个enum关键字,他就不行,他的实例对象, 只能在这个enum里面体现。也就是说,他对应的实例是有限的。这也就是枚举的好处了,限制了某些东西的范围

7.参考文献

http://blog.csdn.net/qq_27093465/article/details/52180865

百度,其他blog

8.更多讨论

鸣谢

感谢观看,如有出错,恳请指正

BY : 北京分院 于博韬