java学习基础第11章枚举类型_第1页
java学习基础第11章枚举类型_第2页
java学习基础第11章枚举类型_第3页
java学习基础第11章枚举类型_第4页
java学习基础第11章枚举类型_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

----为你Java的梦想插上翅膀J2SE(JDK5以上)开发

讲师:孙雷TEL:

----为你Java的梦想插上翅膀第11章枚举类型常数设置与枚举类型定义枚举类型----为你Java的梦想插上翅膀常数设置可使用接口来定义操作时所需的共享常数publicinterfaceActionConstants{publicstaticfinalintTURN_LEFT=1;publicstaticfinalintTURN_RIGHT=2;publicstaticfinalintSHOT=3;}----为你Java的梦想插上翅膀常数设置publicvoidsomeMethod(){....doAction(ActionConstants.TURN_RIGHT);....}publicvoiddoAction(intaction){switch(action){caseActionConstants.TURN_LEFT:System.out.println("向左转");break;caseActionConstants.TURN_RIGHT:System.out.println("向右转");break;caseActionConstants.SHOOT:System.out.println("射击");break;}}----为你Java的梦想插上翅膀常数设置使用类来声明的话如果常数只是在类内部使用的话,就声明其为“private”或是“protected”就可以了声明为类外可取用的常数,通常是与类功能相依的常数publicclassCommandTool{publicstaticfinalStringADMIN="onlyfun.caterpillar.admin";publicstaticfinalStringDEVELOPER="onlyfun.caterpillar.developer";publicvoidsomeMethod(){//....}}----为你Java的梦想插上翅膀枚举类型入门要定义枚举类型是使用“enum”关键词枚举类型骨子里就是一个类,所以您编译完成后,会产生一个Action.class档案publicenumAction{TURN_LEFT,TURN_RIGHT,SHOOT}----为你Java的梦想插上翅膀枚举类型入门publicclassEnumDemo{publicstaticvoidmain(String[]args){doAction(Action.TURN_RIGHT);}

publicstaticvoiddoAction(Actionaction){switch(action){caseTURN_LEFT:System.out.println("向左轉");break;caseTURN_RIGHT:System.out.println("向右轉");break;caseSHOOT:System.out.println("射擊");break;}}}----为你Java的梦想插上翅膀枚举类型入门doAction()参数列的类型是Action如果对doAction()方法输入其它类型的自变量,编译程序会回报错误如果您在"switch"中加入了不属于Action中枚举的值,编译程序也会回报错误----为你Java的梦想插上翅膀枚举类型入门...publicstaticvoiddoAction(Actionaction){switch(action){caseTURN_LEFT:System.out.println("向左转");break;caseTURN_RIGHT:System.out.println("向右转");break;caseSHOOT:System.out.println("射击");break;caseSTOP://Action中没有枚举这个值

System.out.println("停止");break;}}...

unqualifiedenumerationconstantnamerequiredcaseSTOP:----为你Java的梦想插上翅膀枚举类型入门可以在一个独立的类中声明枚举值,或是在某个类中声明枚举成员privateenumInnerAction{TURN_LEFT,TURN_RIGHT,SHOOT};publicstaticvoidmain(String[]args){doAction(InnerAction.TURN_RIGHT);}

publicstaticvoiddoAction(InnerActionaction){…}----为你Java的梦想插上翅膀枚举类型入门枚举类型本质上还是个类上面列子的枚举声明方式有些像在声明「内部类」(Innerclass)编译产生EnumDemo2$InnerAction.class与EnumDemo2$1.class----为你Java的梦想插上翅膀深入枚举类型定义枚举类型时其实就是在定义一个类只不过很多细节由编译程序帮您补齐了某些程度上"enum"关键词的作用就像是"class"或"interface"定义出来的类型是继承自java.lang.Enum类每个被枚举的成员其实就是定义的枚举类型的一个实例。----为你Java的梦想插上翅膀深入枚举类型枚举的成员预设为“final”,所以无法改变常数名称所设定的值也是“public”且“static”的成员,可以透过类名称直接使用它们----为你Java的梦想插上翅膀深入枚举类型Object继承下来toString()方法被重新定义了,可以让您直接取得枚举值的字符串描述values()方法可以让您取得所有的枚举成员实例,并以数组方式传回静态valueOf()方法可以让您将指定的字符串尝试转换为枚举实例可以使用compareTo()方法来比较两个枚举对象在枚举时的顺序----为你Java的梦想插上翅膀深入枚举类型定义枚举类型时也可以定义方法publicenumDetailAction{TURN_LEFT,TURN_RIGHT,SHOOT;

publicStringgetDescription(){switch(this.ordinal()){case0:return"向左转";case1:return"向右转";case2:return"射击";default:returnnull;}}}----为你Java的梦想插上翅膀深入枚举类型可以为枚举加上建构方法(Constructor)不得为公开的(public)建构方法避免粗心的程序人员直接对枚举类型实例化publicenumDetailAction2{TURN_LEFT("向左转"),TURN_RIGHT("向右转"),SHOOT("射擊");privateStringdescription;//不公开的建构方法

privateDetailAction2(Stringdescription){this.description=description;}publicStringgetDescription(){returndescription;}}----为你Java的梦想插上翅膀深入枚举类型在定义枚举值时也可以一并实作接口publicinterfaceIDescription{publicStringgetDescription();}publicenumDetailAction3implementsIDescription{TURN_LEFT("向左转"),TURN_RIGHT("向右转"),SHOOT("射击");

privateStringdescription;

//不公开的建构方法

pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论