您的位置:首页 > 编程语言 > Java开发

java交通管理系统枚举学习笔记及心得

2014-07-10 19:55 218 查看
-------android培训java培训、期待与您交流!
----------
在学习张孝祥老师交通系统中枚举这一节时,感觉张老师讲课风趣幽默,态度严谨,而且循序渐进又很有深度。下面我分享一下我在学习这节视频时的学习笔记及心得写下来。
1.为什么我们要学习枚举?
首先,我们来举个例子,我们在java中定义星期几或者性别时候,变量到底应该怎么定义呢,若我们这样写:int weekDay ,在对变量初始化的时候,我们不小心就会出现这种情况:int wwekDay = 0;而我们知道这是不正确的。下面我们再来看这个问题,枚举是让某个类型的变量的取值只能为若干固定值中取一个,否则,在编译就会出错,枚举可以让编译器在编译时控制源程序中填写的非法值,而普通变量在开发阶段无法实现这个功能。
2.怎么用普通类如何定义一个枚举功能,定义一个weekDay的类来模拟枚举功能私有构造方法?
①私有的构造方法;
②每个元素分别用一个公有静态成员变量表示;

③可以有若干公有方法或抽象方法,例如:提供nextDay方法必须抽象。
下面列举我查到的一些枚举方法(只做说明,不符代码):
常量:枚举可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
switch语句:switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
向枚举中添加新方法:如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且Java要求必须先定义enum实例。
覆盖枚举的方法;
实现接口:所有的枚举都继承自java.lang.Enum类。由于Java不支持多继承,所以枚举对象不能再继承其他类。
使用接口组织枚举;
关于枚举集合的使用:java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

3.枚举的应用(举例:定义一个weekDay枚举)

扩展枚举类的values,valueOf,name.toString,ordinal等方法

总结:枚举是一种特殊的类,其中每个元素都是该类中的一个实例对象,例如weekDay.sun.getClass(),getName和weekDay.class.getName(),采用抽象方法定义nextDay就得将大量if-else语句转移成一个独立的类。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java android 枚举