jdk5.0新特性(3)——枚举

jdk5.0新特性(3)——枚举

ID:14269617

大小:59.00 KB

页数:7页

时间:2018-07-27

jdk5.0新特性(3)——枚举_第1页
jdk5.0新特性(3)——枚举_第2页
jdk5.0新特性(3)——枚举_第3页
jdk5.0新特性(3)——枚举_第4页
jdk5.0新特性(3)——枚举_第5页
资源描述:

《jdk5.0新特性(3)——枚举》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【文章标题】JDK5.0新特性(3)——枚举【文章作者】曾健生【作者邮箱】zengjiansheng1@126.com【作者QQ】190678908【作者博客】http://blog.csdn.net/newjueqihttp://newjueqi.javaeye.com/【作者声明】欢迎转载文章,但转载请保留文章的完整性以及注明文章的出处。*******************************************************************************Sun在JDK5

2、.0中增加了对枚举的支持。在Java的实际开发中,有些类的实例数量是固定的,譬如表示星期几的类,就只能有7个固定的取值,因为一个星期就只有七天,又譬如表示季节的类,就只有春,夏,秋,冬这四个实例。把这种固定而且有限的类称为枚举类。在JDK5.0前,需要使用枚举就必须手动实现,有点像是单态模式的实现方法,代码以季节类为例子://手动实现季节枚举类classSeason{//季节信息字符串privateStringstr;privateSeason(Stringstr){this.str=str;}//分别创建4个季

3、节类的实例privatefinalstaticSeasonSPRING=newSeason("春天");privatefinalstaticSeasonSUMMER=newSeason("夏天");privatefinalstaticSeasonAUTUMN=newSeason("秋天");privatefinalstaticSeasonWINNTER=newSeason("冬天");//根据参数返回相对应的枚举量publicstaticSeasongetInstance(intnum){Seasonseason

4、=null;switch(num){case1:season=SPRING;break;case2:season=SUMMER;break;case3:season=AUTUMN;break;case4:season=WINNTER;break;}returnseason;}//显示季节显示publicvoidshowInfo(){System.out.println(str);}}测试代码如下:publicclassTestEnum{publicstaticvoidmain(String[]args){Seas

5、onspring=Season.getInstance(1);spring.showInfo();}}输出结果:春天各位读者看到后是不是觉得很麻烦(呢,我也有同感^-^)现在JDK支持了枚举类后,工作就轻松多了,这可是广大程序员的福音!!!废话少说,现在开始进入正题。把类定义为枚举类,只需要在类的声明时加上关键字“enum”即可。枚举类和普通的类是有以下几点区别1.枚举类是默认继承java.lang.Enum类。2.枚举类的构造函数默认使用private访问控制符,如publicenumSeason{public

6、Season(){};}上面的蓝色字体部分就会报错1.枚举类所有的实例需要在类中的第一行列出(用“,”分割),所有的实例会默认添加publicstaticfinal属性。2.所有的枚举类会默认有个values()方法,返回所有枚举实例。使用枚举类的属性需要注意:如果需要每个枚举实例所拥有的某个属性不一样,这个属性就应该修饰为privatefinal。但一个变量修饰为final,就只能有两种方法赋值:1.在初始化时赋值。这种方法行不通,因为要求每个枚举实例所拥有的某个属性不一样,如果在初始化时赋值,就意味着每个枚举

7、实例所对应的属性都一样。2.在构造函数中赋值。从技术上可以实现。下面一段实例代码,实现了每个季节的枚举实例在初始化后就拥有各自的季节信息:packagenewjueqi.net.csdn.testenum;/**实现了一个枚举类*/publicenumSeason{//分别拥有各自的季节信息SPRING("春天来了"),SUMMER("夏天来了"),AUTUMN("秋天来了"),WINNER("冬天来了");privatefinalStringstr;//季节的信息//在构造函数中赋初始值Season(Strin

8、gstr){this.str=str;}//显示季节信息publicvoidshowInfo(){System.out.println(str);}}测试代码如下:packagenewjueqi.net.csdn.testenum;publicclassTestSeason{publicstaticvoidmain(String[]args){//获取春天的实例Seaso

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。