Java05_泛型、枚举与For语句的简化写法.ppt_第1页
Java05_泛型、枚举与For语句的简化写法.ppt_第2页
Java05_泛型、枚举与For语句的简化写法.ppt_第3页
Java05_泛型、枚举与For语句的简化写法.ppt_第4页
Java05_泛型、枚举与For语句的简化写法.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

第五章泛型 枚举与for语句的简化写法 信息类专业课程 西北农林科技大学 5 1泛型 genericity 可提高程序代码的复用性减少数据的类型转换 以提高代码的运行效率 在编译时强制使用正确的数据类型通过给类或接口增加类型参数实现 泛型类和泛型接口的定义 类 类修饰词列表 class类名 extends父类名 implements接口名称列表 类体 接口 接口修饰词列表 interface接口名 extends接口名称列表 接口体 类型参数的定义格式 类型变量标识符 等价于 类型参数变量标识符extendsObject类型变量标识符extends父类型 表明所定义的类型变量是其父类型的子类型 如 publicclassAdd 类型变量标识符extends父类型1 父类型2 父类型n 各父类最多仅有1个类 其余为接口 例1 采用第一种形式定义变量类型的泛型程序 publicclassAdd publicStringsum Ta1 Ta2 Ta3 return a1 toString a2 toString a3 toString 方法sum结束publicstaticvoidmain Stringargs Addb newAdd Integera1 newInteger 1 Integera2 newInteger 2 Integera3 newInteger 3 System out println b sum a1 a2 a3 方法main结束 类Add结束 类Add说明 publicclassAdd等价于publicclassAdd创建Add对象时 采用newAdd 这里实际类型应是类java lang Object的子类 如 Addb newAdd 调用Add的成员方法sum 实际上是调用成员方法publicStringsum Integera1 Integera2 Integera3 例2 采用第二种形式定义变量类型的泛型程序 interfaceInterface publicintsum Ta1 Ta2 Ta3 接口Interface结束publicclassAddInterfaceimplementsInterface publicintsum Ta1 Ta2 Ta3 intb1 a1 intValue intb2 a2 intValue intb3 a3 intValue return b1 b2 b3 方法sum结束publicstaticvoidmain Stringargs AddInterfaceb newAddInterface Integera1 newInteger 1 Integera2 newInteger 2 Integera3 newInteger 3 System out println b sum a1 a2 a3 方法main结束 类AddInterface结束 例3 采用第三种形式定义变量类型的泛型程序 classC1 publicvoidmethodA System out print A 方法methodA结束 类C1结束interfaceC2 publicvoidmethodB 接口C2结束classC3extendsC1implementsC2 publicvoidmethodB System out print B 方法methodB结束 类C3结束 classC4 publicvoidmethodD Tt t methodA t methodB 方法methodT结束 类C4结束publicclassGenericity publicstaticvoidmain Stringargs C4a newC4 a methodD newC3 方法main结束 类Genericity结束 5 2枚举 创建枚举类型的主要目的是为了定义一些枚举常量 枚举的基本定义格式 枚举类型修饰词列表 enum枚举类型标识符 枚举常量1 枚举常量2 枚举常量n 枚举类型修饰词可以是public或缺省 但不能是protected private abstract 例4 定义枚举类型Season enumSeason 春季 夏季 秋季 冬季 枚举Season结束注 定义枚举变量 如 Seasons 定义枚举数组变量 如 Seasons Season 春季 Season 夏季 Season 秋季 Season 冬季为枚举常量 枚举变量和常量 不能通过new运算符创建实例对象 可直接通过枚举类型标识符访问枚举变量 如 Seasons1 Season 春季 可通过枚举变量访问枚举常量 如s 夏季 Season 夏季通过枚举常量 可调用成员方法 1 publicStringname 2 publicStringtoString 如 s1 name 或Season 春季 toString 都返回 春季 通过成员方法values获得该枚举类型的所有枚举变量 如 Season s2 Season values enumSeason 春季 夏季 秋季 冬季 枚举Seaon结束publicclassEnumDemo publicstaticvoidmain Stringargs Season sa Season values for inti 0 i sa length i switch sa i case春季 System out println 春季花满天 break case夏季 System out println 夏季热无边 break case秋季 System out println 秋季果累累 break case冬季 System out println 冬季雪皑皑 break switch结构结束 for循环结束 方法main结束 类EnumDemo结束 在switch中使用枚举类型 各分支语句的枚举常量前不能加点运算符以及枚举变量或枚举类型标识符 如不能写作 caseSeason 春季 casesa i 春季 例5 枚举的应用程序 5 3for语句的简化写法 for语句的简化写法格式 for 类型标识符 表达式 语句或语句块如 Vectora newVector a add a a add b a add c for Stringc a System out print c 第一类for语句简化写法的完整格式 for Iteratori 表达式 iterator i hasNext 类型标识符 i next 语句或语句块 例6 第一类for语句的简化写法程序 importjava util Iterator importjava util Vector publicclassVectorFor publicstaticvoidmain Stringargs Vectora newVector a add a a add b a add c for Stringc a System out print c System out println for Iteratori a iterator i hasNext Stringc i next System out print c 第二类for语句简化写法的完整格式 类型 ca 表达式 for inti 0 i ca length i 类型标识符 ca i 语句或语句块 例7 for语句的简化写法在枚举类型中的应用程序 enumSeason 春季 夏季 秋季 冬季 publicclassEnumFor publicstaticvoidmain Stringargs for Seasonc Season values System out print c System out println Season ca Season values for inti 0 i ca length i Seasonc ca i System out print c 例8 for语句的简化写法在整数数组中的应用程序 publicclassIntegerFor publicstaticvoidmain Stringargs int a 10 20 30 40 50 ints 0 fo

温馨提示

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

评论

0/150

提交评论