网站大量收购闲置独家精品文档,联系QQ:2885784924

JAVA中的枚举类型2:高级特性.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法,例如: Java代码 enum?Weekday?{ ?? ????SUNDAY(SUN),? ?? ????MONDAY(MON),? ?? ????TUESDAY(TUE),? ?? ????WEDNESDAY(WED),? ?? ????THURSDAY(THU),? ?? ????FRIDAY(FRI),? ?? ????SATURDAY(SAT); ?? ?? ????private?String?abbr; ?? ?? ????public?Weekday(String?abbr)?{ ?? ????????this.abbr?=?abbr; ?? ????} ?? ?? ????public?getAbbreviation()?{ ?? ????????return?abbr; ?? ????} ?? ?? }?? enum Weekday { SUNDAY(SUN), MONDAY(MON), TUESDAY(TUE), WEDNESDAY(WED), THURSDAY(THU), FRIDAY(FRI), SATURDAY(SAT); private String abbr; public Weekday(String abbr) { this.abbr = abbr; } public getAbbreviation() { return abbr; } } ?上面的代码中,Weekday枚举有一个构造函数,这个构造函数是不能通过new语句调用的,不过可以在声明常量的时候进行调用,只要要常量后面加上括号并传递参数进去就可以了,这样不同的常量对象都有了不同的属性值,这个值存储在字段abbr中。另外这个枚举类型还定义了方法,在获得了对某个常量的引用后,就可以调用它的getAbbreviation()方法。例如: Java代码 System.out.println(Weekday.SUNDAY.getAbbreviation());?? System.out.println(Weekday.SUNDAY.getAbbreviation()); ?枚举类型还有一个特殊的功能,就是在声明常量的时候可以重写枚举中的方法,从而达到某种“多态”的效果,例如: Java代码 public?enum?SomeEnum?{ ?? ????CONST_A,?CONST_B,?CONST_C?{ ?? ????????public?void?someMethod()?{ ?? ????????????System.out.println(another?description); ?? ????????} ?? ????}; ?? ?? ????public?void?someMethod()?{ ?? ????????System.out.println(default?description); ?? ????} ?? }?? public enum SomeEnum { CONST_A, CONST_B, CONST_C { public void someMethod() { System.out.println(another description); } }; public void someMethod() { System.out.println(default description); } } ? 通过CONST_A和CONST_B调用someMethod()方法,屏幕上会打印 default description,而通过CONST_C调用someMethod()方法,则会打印 another description。

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档