Java枚举技术心得

黑马程序员  陈希然

   假使我们要做一个黑马教师管理的系统,那老师是不是只能是在黑马里面任职的,假使老师只有“张孝祥,黎活明,方立勋,冯威,徐培成”这些,那么除了他们就再不能出现别的老师名字了,因为我们黑马的老师就只有他们,所以这些老师是不是都是固定的而且不能有多余的其他的老师名字,这时我们就可以用枚举来限定这些老师。

   枚举里面的每个值就是这个枚举的对象,由于这些值默认的是public static final的,而且构造器也是private的,这样是不是就限定了我们的取值只能是这几个,因为我们不能再创建新的对象(构造器是private的)和改变已创建的对象(因为有final限制了);

   这是定义的黑马教师枚举,到这里大家是不是想说:诶,我想看的是我们中文的名字,你怎么给我弄成了英语;确实,我也不喜欢老外的东西,可是大家定义变量名都是用英语的,为了不让别人看扁我们,所以我们也要用英文来定义变量赶潮流;那么我们要怎么得到中文名字呢?这里就是接下来要讲的枚举数据封装了....

这就是我们封装了数据后的代码,竟然我们封装了这个数据,那要怎样用它来表示我们的中文名字和打印出来呢?请看下面代码....

EnumerationDemo类是用来测试枚举的;大家觉得上面这样的赋值代码好吗?不好,我觉得烂透了,我认为写程序应该做到强内聚,尤其是对于枚举而言;因为一般枚举我们都是在它的枚举类里面先为每个属性赋值,在外面的话就用这个枚举来做检查,所以我就把枚举改为了下面的代码....

 
这样我们就是通过构造期来赋值,充分体现了强内聚模式;到了这里大家应该觉得竟然知道了名字那我还想知道他们的职务,这里假设他们的职务为:(张教android,黎教JavaMail,方教JavaWeb,冯教数据库,徐教C#),应该怎么做呢?
 
 
大家看到了是用抽象方法来实现返回职务的吧,为什么要用抽象方法呢?如果我们不用抽象方法那么返回职务的这个方法永远都只返回一个相同的职务;由于有了抽象方法,只要各个不同的对象分别去实现各自的返回职务的方法,这样就能返回不同的职务,而且有了更多的灵活性。
 
总结:这个枚举虽然不复杂,但是基本上用到的枚举处理技术都包含了;我们可以利用接口来替换掉上面的抽象方法,从而让它们各自实现接口里的抽象方法来达到相同的效果,不过比这种写法复杂一点点,由于篇幅我就不写了,大家可以自己实验。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值