设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 809|回复: 0
收起左侧

南京Java培训分享Java高级特性之枚举学习总结

[复制链接]
发表于 2016-12-20 16:07:10 | 显示全部楼层 |阅读模式
  在Java SE5之前,我们要使用枚举类型时,通常会使用static final 定义一组int常量来标识,代码如下


                               
登录/注册后可看大图

  相信很多小伙伴,在实际开发中也是那么干的,既然这样已经能实现枚举的功能,为什么还要引入枚举呢?南京万和Java培训带大家接着往下看当我们需要是同这组“int枚举”是代码如下


                               
登录/注册后可看大图

  看起来这些貌似也没什么问题,但是我们知道,一个项目基本都是基于团队开发,或许只有你自己知道int类型的1代表gril,0代表Boy。其他同事看到这个函数根本不知道其中的含义,这样的代码很明显阅读性很差,从而会造成沟通成本很高。我们接着往下看,现在你为你的func写了很nice的注释,傻子都能看得懂(0 boy,1 gril)。但是项目组不可避免的总会出现那么一两个傻子,非要给你传个3进来,而且这样的错误编译器不会报任何错误,运行时会造成什么bug,这个只有乔老爷知道了。所以这样的代码是极不安全的。使用枚举就能很好的避免上面的问题,接下来南京万和Java培训带大家来理一理枚举的用法。

  枚举用于存储数量有限的一组固定的数据集。使用场景:上面说到的性别的表示,一年四级春夏秋冬的表示,一周七天的表示,颜色的表示等等。

  枚举的简单用法


                               
登录/注册后可看大图

                               
登录/注册后可看大图

  枚举中还有一个ordinal()方法返回一个int值,这是每个enum实例在声明时的次序,从0开始。枚举类还实现了Compareable接口,所以他具有compareTo()方法。同时还实现了Serializable接口,还自动为你提供了equals()和hashCode()方法。除了不能继承一个枚举类之外,我们基本上可以把枚举类当成一个常规的Java类,可以往其中添加新的方法,包括抽象方法甚至main方法。

  现在我们用枚举来实现上面的那个性别函数


                               
登录/注册后可看大图

  这样既有很好的阅读性又避免的安全性问题!

  以上是南京万和Java培训关于Java高级特性之枚举的学习总结,希望能帮助到大家!

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-6 00:49 , Processed in 0.050729 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表