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

-------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语句转移成一个独立的类。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值