全面掌握java枚举类型(enum_type).docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
全面掌握java枚举类型(enum_type)

全面掌握java枚举类型(enum type)背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏天,3表示秋天,4表示冬天。publicclassSeason {publicstaticfinalintSPRING = 1;publicstaticfinalintSUMMER = 2;publicstaticfinalintAUTUMN = 3;publicstaticfinalintWINTER = 4;}这种方法称作int枚举模式。可这种模式有什么问题呢,我们都用了那么久了,应该没问题的。通常我们写出来的代码都会考虑它的安全性、易用性和可读性。首先我们来考虑一下它的类型安全性。当然这种模式不是类型安全的。比如说我们设计一个函数,要求传入春夏秋冬的某个值。但是使用int类型,我们无法保证传入的值为合法。代码如下所示:private String getChineseSeason(int season){StringBuffer result = newStringBuffer();switch(season){caseSeason.SPRING :result.append(春天);break;caseSeason.SUMMER :result.append(夏天);break;caseSeason.AUTUMN :result.append(秋天);break;caseSeason.WINTER :result.append(冬天);break;default :result.append(地球没有的季节);break;}returnresult.toString();}publicvoiddoSomething(){System.out.println(this.getChineseSeason(Season.SPRING));//这是正常的场景System.out.println(this.getChineseSeason(5));//这个却是不正常的场景,这就导致了类型不安全问题}程序getChineseSeason(Season.SPRING)是我们预期的使用方法。可getChineseSeason(5)显然就不是了,而且编译很通过,在运行时会出现什么情况,我们就不得而知了。这显然就不符合Java程序的类型安全。接下来我们来考虑一下这种模式的可读性。使用枚举的大多数场合,我都需要方便得到枚举类型的字符串表达式。如果将int枚举常量打印出来,我们所见到的就是一组数字,这是没什么太大的用处。我们可能会想到使用String常量代替int常量。虽然它为这些常量提供了可打印的字符串,但是它会导致性能问题,因为它依赖于字符串的比较操作,所以这种模式也是我们不期望的。从类型安全性和程序可读性两方面考虑,int和String枚举模式的缺点就显露出来了。幸运的是,从Java1.5发行版本开始,就提出了另一种可以替代的解决方案,可以避免int和String枚举模式的缺点,并提供了许多额外的好处。那就是枚举类型(enum type)。接下来的章节将介绍枚举类型的定义、特征、应用场景和优缺点。定义枚举类型(enum type)是指由一组固定的常量组成合法的类型。Java中由关键字enum来定义一个枚举类型。下面就是java枚举类型的定义。publicenum Season {SPRING, SUMMER, AUTUMN, WINER;}特点Java定义枚举类型的语句很简约。它有以下特点:使用关键字enum类型名称,比如这里的Season一串允许的值,比如上面定义的春夏秋冬四季枚举可以单独定义在一个文件中,也可以嵌在其它Java类中除了这样的基本要求外,用户还有一些其他选择枚举可以实现一个或多个接口(Interface)可以定义新的变量可以定义新的方法可以定义根据具体枚举值而相异的类应用场景以在背景中提到的类型安全为例,用枚举类型重写那段代码。代码如下:publicenum Season {SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);privateintcode;private Season(int code){this.code = code;}publicintgetCode(){returncode;}}publicclassUseSeason {/** * 将英文的季节转换成中文季节 * @param season * @return */public String getChineseSeason(Season season){StringBuf

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档