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

下载本文档

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

文档简介

信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 第五章 泛型、枚举与for语句的简化写法 信息类专业课程 西北农林科技大学 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 5.1 泛型(genericity) 可提高程序代码的复用性 减少数据的类型转换,以提高代码的运行效率 -在编译时强制使用正确的数据类型 通过给类或接口增加类型参数实现 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 泛型类和泛型接口的定义 类 类修饰词列表 class 类名 extends 父类名 implements 接口名 称列表 类体 接口 接口修饰词列表 interface 接口名 extends 接口名称列表 接口体 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 类型参数的定义格式 类型变量标识符 等价于:类型参数变量标识符 extends Object 类型变量标识符 extends 父类型 表明所定义的类型变量是其父类型的子类型,如: public class Add 类型变量标识符 extends 父类型1 / 方法sum结束 public static void main(String args ) Add b = new Add( ); Integer a1 = new Integer(1); Integer a2 = new Integer(2); Integer a3 = new Integer(3); System.out.println( b.sum(a1, a2, a3) ); / 方法main结束 / 类Add结束 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 类Add说明 public class Add 等价于 public class Add 创建Add对象时,采用new Add,这里实际类型应是 类java.lang.Object 的子类,如: Add b = new Add( ); 调用Add的成员方法sum,实际上是调用成员方 法 public String sum(Integer a1,Integer a2,Integer a3) 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 例2:采用第二种形式定义变量类型的泛型程序 interface Interface public int sum(T a1, T a2, T a3); / 接口Interface结束 public class AddInterface implements Interface public int sum(T a1, T a2, T a3) int b1 = Value( ); int b2 = Value( ); int b3 = Value( ); return( b1 + b2 + b3 ); / 方法sum结束 public static void main(String args ) AddInterface b = new AddInterface( ); Integer a1 = new Integer(1); Integer a2 = new Integer(2); Integer a3 = new Integer(3); System.out.println( b.sum(a1, a2, a3); / 方法main结束 / 类AddInterface结束 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 例3:采用第三种形式定义变量类型的泛型程序 class C1 public void methodA( ) System.out.print(“A“); / 方法methodA结束 / 类C1结束 interface C2 public void methodB( ); / 接口C2结束 class C3 extends C1 implements C2 public void methodB( ) System.out.print(“B“); / 方法methodB结束 / 类C3结束 14.class C4 15. public void methodD( T t ) 16. t.methodA( ); 17. t.methodB( ); 18. / 方法methodT结束 19. / 类C4结束 20.public class Genericity 21. public static void main(String args ) 22. C4 a = new C4( ); 23. a.methodD( new C3( ) ); 24. / 方法main结束 25. / 类Genericity结束 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 5.2 枚举 创建枚举类型的主要目的是为了定义一些枚举常量。 枚举的基本定义格式: 枚举类型修饰词列表 enum 枚举类型标识符 枚举常量1, 枚举常量2, . ., 枚举常量n 枚举类型修饰词可以是public或缺省,但不能是protected、 private、abstract 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 例4:定义枚举类型Season enum Season 春季, 夏季, 秋季, 冬季 / 枚举Season结束 注: 定义枚举变量,如:Season s; 定义枚举数组变量,如:Season s ; Season.春季, Season.夏季, Season.秋季, Season.冬季为枚 举常量 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 枚举变量和常量 不能通过new运算符创建实例对象,可直接通过枚举类型标识符访 问枚举变量,如: Season s1= Season.春季; 可通过枚举变量访问枚举常量,如 s.夏季=Season.夏季 通过枚举常量,可调用成员方法 (1) public String name(); (2) public String toString(); 如:()或Season.春季.toString()都返回“春季” 通过成员方法values获得该枚举类型的所有枚举变量,如:Season s2=Season.values(); 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 enum Season 春季, 夏季, 秋季, 冬季 / 枚举Seaon结束 public class EnumDemo public static void main(String args ) Season sa = Season.values( ); for ( int i=0; i a = new Vector( ); a.add( “a“ ); a.add( “b“ ); a.add( “c“ ); for ( String c : a) System.out.print(c + “, “); 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 第一类for语句简化写法的完整格式 for ( Iterator i=表达式.iterator( ); i.hasNext( ); ) 类型 标识符 = i.next( ); 语句或语句块 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 例6:第一类for语句的简化写法程序 import java.util.Iterator; import java.util.Vector; public class VectorFor public static void main(String args ) Vector a = new Vector( ); a.add( “a“ ); a.add( “b“ ); a.add(“c“); for ( String c : a) System.out.print(c + “, “); System.out.println( ); for ( Iterator i=a.iterator( ); i.hasNext( ); ) String c = i.next( ); System.out.print(c + “, “); 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 第二类for语句简化写法的完整格式 类型 ca = 表达式; for (int i=0; ica.length; i+) 类型 标识符 = cai; 语句或语句块 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 例7:for语句的简化写法在枚举类型中的应用程序 enum Season 春季, 夏季, 秋季, 冬季 public class EnumFor public static void main(String args ) for ( Season c : Season.values( ) System.out.print(c + “, “); System.out.println( ); Season ca = Season.values( ); for ( int i=0; i ca.length; i+ ) Season c = cai; System.out.print(c + “, “); 信息科学(信息科学( INFORMATION SCIENCE) 西北农林科技大学西北农林科技大学 例8:for语句的简化写法在整数数组中的应用程序 public class IntegerFor public static void main(String args ) int a = 10, 20, 30, 40, 50; int s = 0; for ( int c : a) s += c; / 这里需要注意c是数组的元素,而不是相应的下标 System.out.println(“数组a的元素之和等于“ + s); s = 0; i

温馨提示

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

评论

0/150

提交评论