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语句转移成一个独立的类。
----------
在学习张孝祥老师交通系统中枚举这一节时,感觉张老师讲课风趣幽默,态度严谨,而且循序渐进又很有深度。下面我分享一下我在学习这节视频时的学习笔记及心得写下来。
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 学习笔记】 String.split使用心得
- java学习笔记之 --------枚举(enum)
- 黑马程序员—7—Java基础:有关异常学习笔记和学习心得体会
- 黑马程序员—17—java基础:有关API的使用学习笔记和心得体会
- 黑马程序员_java枚举的学习心得
- 黑马程序员--学习笔记12.Java枚举
- 黑马程序员—8—Java基础:有关包的学习笔记和学习心得和体会
- 黑马程序员—5—Java基础:多态学习笔记和学习心得体会
- 黑马程序员—16—java基础:有关map结合的学习笔记和心得体会
- 黑马程序员之C#学习笔记:枚举以及将字符串转换为枚举学习心得
- 黑马程序员--Java基础加强学习笔记之重载和覆写、可变参数、枚举
- java学习笔记10--枚举
- 黑马程序员—10—java基础:有关多线程安全的学习笔记和学习心得体会
- Java编程思想学习笔记——枚举、注解
- 《编写高质量代码改善Java程序的151个建议》学习笔记 第6章 枚举和注解
- 黑马程序员-java学习笔记-枚举
- 黑马程序员——java 枚举学习笔记
- 黑马程序员—15—java基础:有关泛型的学习笔记和学习心得体会
- 黑马程序员—11—java基础:有关线程通信的学习笔记和学习心得体会
- 黑马程序员—6—Java基础:内部类学习笔记和心得体会