- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 枚举和泛型 12.1 枚举类型 12.2 泛型类、接口和方法 12.3 通配符 12.4 Java语言泛型的实现和局限性 12.5 习题 12.1 枚举类型 用什么数据类型来表示一周中的7天呢? 学过C、C++等语言的读者肯定会说使用枚举类型。不过,Java SE5之前,Java程序员为达到相同目的,通常需要使用类定义一个整数类型常量数据成员集。现在,Java语言终于也有了枚举类型,而且,它的功能比C、C++语言中的枚举类型完备得多。 12.1 枚举类型(续) 枚举是一种引用数据类型,本质上说它是一种特殊的类。这种类的实例对象个数是有限的,定义时,需要将其所有可能的实例对象一一枚举出来。基本语法形式一般如下: enum 枚举类型名{枚举值1, 枚举值2, …, 枚举值n} 其中的枚举值列出了这种类型实例对象的所有可能取值,每个枚举值都是一个用标识符表示的具有不同名称的命名常量,又称枚举常量,相应对象由系统自动创建。 12.1 枚举类型(续) public enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 定义了一个名为Weekday的枚举类型,其中的枚举值列出了这种类型实例对象的所有可能取值。由于枚举值都是常量,因此按照规范,它们用大写字母表示。 12.1 枚举类型(续) 定义某种枚举类型后,就可以声明这种类型的引用变量。 例: Weekday wd; 12.1 枚举类型(续) 不能显式使用运算符new创建枚举类型的实例对象,枚举类型实例对象的所有可能取值就是定义相应枚举类型时列出的枚举值。要为枚举引用变量赋值,需要使用运算符“.”通过枚举类型名访问枚举值(每个枚举值实际上都是静态枚举常量)。 例: wd = Weekday.FRIDAY; 12.1 枚举类型(续) 枚举类型从本质上说是类。用户定义的所有枚举类型实际上都派生自类java.lang.Enum,继承了该类的所有方法。其中,部分常用方法如下: public String toString() //返回当前枚举常量的名称 public final int ordinal() //返回当前枚举常量的序数(即它在 //枚举类型定义中的位置,其中第1 //个常量的序数为0) 12.1 枚举类型(续) 编译器编译时,还会为枚举类型添加一些方法,比如,静态方法values。调用静态方法values,将按照枚举值的声明顺序,产生一个包含当前枚举类型全部枚举值的数组。 例: Weekday[] wds = Weekday.values(); 就定义了一个含有7个元素的数组wds,数组元素依次为Weekday.SUNDAY、Weekday.MONDAY、Weekday.TUESDAY、 Weekday.WEDNESDAY、Weekday.THURSDAY、Weekday.FRIDAY、Weekday.SATURDAY。 12.1 枚举类型(续) 同一枚举类型的不同实例对象的值一定不相同,因此,在比较两个枚举变量引用对象的值是否相等时,不需要调用方法equal,只需直接使用运算符“==”。 例12-1 使用枚举类型 12.1 枚举类型(续) 如果switch后圆括号中的表达式是枚举类型,则该switch语句中的每个case后的常量表达式都必须是相应枚举类型中定义的枚举常量,且枚举常量前不能加限定名。 比如:例12-1中的代码: case 春季: 不能改写为: case Season.春季: case sa.春季: 12.1 枚举类型(续) 虽然枚举类型看起来像是一种新的数据类型,但事实上,编译器编译时只是为它生成对应的类。因此,在很大程度上,可以将枚举类型当作一个常规的类,许多有关常规类的知识都适用于它。 12.1 枚举类型(续) 比如:有关访问权限控制的知识;可以在枚举类型中定义数据成员和方法,甚至主方法;枚举类型可以实现接口(所有枚举类型都隐式继承于类java.lang.Enum,由于Java语言不支持多继承,所以枚举类型不能继承于其他类);等等。不过,枚举类型不能声明抽象的;不能使用关键字new显式创建枚举类型对象;枚举类型不能被继承;等等。 12.2 泛型类、接口和方法 12.2.1 泛型的引入 1
您可能关注的文档
- Flash动画制作 江华伟 郑东营 Flash动画制作10--模版的应用及动画发布新.ppt
- Inventor工业产品设计项目教程 马玥桓 1 2 任务2 算盘式钥匙扣新.ppt
- Inventor工业产品设计项目教程 马玥桓 3 4 项目2 任务2 按摩枕新.ppt
- Inventor工业产品设计项目教程 马玥桓 3 4 项目3 任务2 卡通节能小电扇新.ppt
- Inventor工业产品设计项目教程 马玥桓 3 4 项目4 任务2 组合餐具新.ppt
- Inventor工业产品设计项目教程 马玥桓 5 任务2 爱心豆便捷式U盘新.ppt
- Inventor工业产品设计项目教程 马玥桓 零件图实例1新.ppt
- Inventor工业产品设计项目教程 马玥桓 零件图实例2新.ppt
- ISO 9000族质量管理标准理论与实务 孙跃兰 第八章 质量管理体系内部审核员新.ppt
- ISO 9000族质量管理标准理论与实务 孙跃兰 第二章 八项质量管理原则的理解和应用新.ppt
- Java程序设计 刘慧宁 15 15新.ppt
- Java程序设计 马世霞 1JAVA概论新.ppt
- Java程序设计 马世霞 3面向对象编程新.ppt
- Java程序设计 马世霞 4异常处理新.ppt
- Java程序设计 马世霞 9图形、动画与多媒体 新.ppt
- Java程序设计 马世霞 11网络编程 新.ppt
- Java程序设计案例教程 包海山 Java程序设计案例教程-模块1新.ppt
- Java程序设计案例教程 包海山 Java程序设计案例教程-模块2新.ppt
- Java程序设计案例教程 包海山 Java程序设计案例教程-模块3新.ppt
- Java程序设计案例教程 包海山 Java程序设计案例教程-模块4新.ppt
文档评论(0)