keil中定义了枚举编译报告所有枚举成员重复定义(共7篇).docxVIP

keil中定义了枚举编译报告所有枚举成员重复定义(共7篇).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
keil中定义了枚举编译报告所有枚举成员重复定义(共7篇)   标签:Java面试题   1.在中要定义枚举类型是使用enum关键词,枚举类型主要提供一些常数。如下列代码定义了Action枚举类型:   Java代码   publicenumAction   {   TURN_LEFT,   TURN_RIGHT,   SHOOT   }   在中编写此段代码并编译,虽然语法上不像是在定义类,但枚举类型本质上就是一个类。所以编译完成后,会产生一个文件。   下面的代码是说明如何使用定义好的枚举类型一个示例:   Java代码   publicclassEnumDemo   {   publicstaticvoidmain(String[]args)   {   doAction(_RIGHT);   }   publicstaticvoiddoAction(Actionaction)   {   switch(action)   {   caseTURN_LEFT:   (向左转);   break;   caseTURN_RIGHT:   (向右转);   break;   caseSHOOT:   (射击);   break;   }   }   }   运行结果:向右转。其中doAction()方法所接受的变量必须是Action枚举类型,如果对此方法输入其他类型的变量,编译器会报告错误。另外,如果在上面的switch中加入了不属于Action中枚举的值,编译器也会报告错误。例如:在上面代码caseSHOOT段下面再加上以下代码:   caseSTOP:   (STOP);   break;   则在编译时编译器会显示以下错误:   unqualifiedenumerationconstantnamerequired   caseSTOP:   ^   2.可以在一个独立的文件中声明枚举值,或是在某个类中声明枚举成员。例如:   Java代码   publicclassEnumDemo2   {   privateenumInnerAction{TURN_LEFT,TURN_RIGHT,SHOOT};   publicstaticvoidmain(String[]args)   {   doAction(_RIGHT);   }   publicstaticvoiddoAction(InnerActionaction)   {   switch(action)   {   caseTURN_LEFT:   (向左转);   break;   caseTURN_RIGHT:   (向右转);   break;   caseSHOOT:   (射击);   break;   }   }   }   由于枚举类型本质上还是类,所以这段代码中枚举声明方式有些像在声明内嵌类。在编译完后,会有一些额外的.class文件产生,在此例中就是EnumDemo2$与EnumDemo2$。看到这两个文件,就可以知道实际上编译器产生了成员内部类和匿名内部类。   上面通过枚举类型设定常数的方式比旧版本的常数设定方式多了编译时期类型检查的好处。以下将深入讨论枚举类型的一些知识,以便深入理解。   2.深入枚举类型:   定义枚举类型其实就是在定义一个类,只不过很多细节由编译器帮你补齐了,所以,某种程度上enum关键词的作用就像是class或interface.   当使用enum定义枚举类型时,实际上所定义出来的类型是继承自   类。而每个被枚举的成员其实就是定义的枚举类型的一个实例,它们都被默认为final。无法改变常数名称所设定的值,它们也是public和static的成员,这与接口中的常量限制相同。可以通过类名称直接使用它们。   如1中所定义的枚举类型Action,TURN_LEFT,TURN_RIGHT,SHOOT都是   Action的一个对象实例。因为是对象,所以,对象上自然有一些方法可以调用。如从Object继承焉的toString()方法被重新定义了,可以让你直接取得枚举值的字符串描述;values()方法可以让您取得所有的枚举成员实例,并以数组方式返回。您可以使用这两个方法来简单的将Action的枚举成员显示出来。静态valueOf()方法可以让您将指定的字符串尝试转换为枚举类型。可以用   compareTo()方法来比较两个枚举对象在枚举时的顺序。-1之前,0位置相同,1之后。对于每个枚举成员,使用ordinal()方法,依枚举顺序得到位置索引,默认以0开始。   3.枚举上的方法:定义枚举类型基本上就是在定义类,定义枚举类型时也可以定义方法。如可以为枚举加上一些描述,而不是使用默认的toString()返回值来描述枚举

文档评论(0)

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

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

1亿VIP精品文档

相关文档