Java语言程序设计:ch05 泛型、枚举与for语句的简化写法

上传人:M****1 文档编号:569478049 上传时间:2024-07-29 格式:PPT 页数:19 大小:252.50KB
返回 下载 相关 举报
Java语言程序设计:ch05 泛型、枚举与for语句的简化写法_第1页
第1页 / 共19页
Java语言程序设计:ch05 泛型、枚举与for语句的简化写法_第2页
第2页 / 共19页
Java语言程序设计:ch05 泛型、枚举与for语句的简化写法_第3页
第3页 / 共19页
Java语言程序设计:ch05 泛型、枚举与for语句的简化写法_第4页
第4页 / 共19页
Java语言程序设计:ch05 泛型、枚举与for语句的简化写法_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Java语言程序设计:ch05 泛型、枚举与for语句的简化写法》由会员分享,可在线阅读,更多相关《Java语言程序设计:ch05 泛型、枚举与for语句的简化写法(19页珍藏版)》请在金锄头文库上搜索。

1、Java语言程序设计语言程序设计第五章 泛型、枚举与for语句的简化写法2013.9Java程序设计 20135.1 泛型(genericity)可提高程序代码的可提高程序代码的复用性复用性减少数据的类型转换减少数据的类型转换,以提高代码的运行效率,以提高代码的运行效率 -在编译时强制使用正确的数据类型在编译时强制使用正确的数据类型 通过给类或接口增加通过给类或接口增加类型参数类型参数实现实现Java程序设计 2013泛型类和泛型接口的定义泛型类和泛型接口的定义类类 类修饰词列表类修饰词列表 class class 类名类名 extends extends 父父类名类名 implements

2、implements 接口名称列表接口名称列表 类体类体 接口接口 接口修饰词列表接口修饰词列表 interface interface 接口名接口名 extends extends 接口名称列表接口名称列表 接口体接口体 Java程序设计 2013类型参数的定义格式类型参数的定义格式类型变量标识符类型变量标识符 等价于:类型参数变量标识符等价于:类型参数变量标识符 extends Objectextends Object类型变量标识符类型变量标识符 extendsextends 父类型父类型 表明所定义的类型变量是其父类型的子类型,如表明所定义的类型变量是其父类型的子类型,如: : publ

3、ic class Add public class Add extends java.lang.Number 类型变量标识符类型变量标识符 extendsextends 父类型父类型1 & 1 & 父类型父类型2 & . . 2 & . . & & 父类型父类型n n 各父类最多仅有各父类最多仅有1 1个类,其余为接口个类,其余为接口Java程序设计 2013例例1:采用第一种形式定义变量类型的泛型程序采用第一种形式定义变量类型的泛型程序1.public class Add 2. public String sum(T a1, T a2, T a3)3. return(a1.toString(

4、 ) + a2.toString( ) + a3.toString( );4. / 方法方法sum结束结束5. public static void main(String args )6. Add b = new Add( );7. Integer a1 = new Integer(1);8. Integer a2 = new Integer(2);9. Integer a3 = new Integer(3);10. System.out.println( b.sum(a1, a2, a3) );11. / 方法方法main结束结束12. / 类类Add结束结束Java程序设计 2013类类

5、Add说明说明public class Add public class Add 等价于等价于 public class Add public class Add 创建创建AddAdd对象时,采用对象时,采用new Addnew Add ,这里实,这里实际类型应是类际类型应是类java.lang.Object java.lang.Object 的子类,如:的子类,如: Add b = new Add( ); Add b = new Add( );调用调用AddAdd的成员方法的成员方法sumsum,实际上是调用,实际上是调用成员方法成员方法 public String sum(Integer

6、a1,Integer public String sum(Integer a1,Integer a2,Integer a3)a2,Integer a3)Java程序设计 2013例例2:采用第二种形式定义变量类型的泛型程序采用第二种形式定义变量类型的泛型程序1.interface Interface 2. public int sum(T a1, T a2, T a3);3. / 接口接口Interface结束结束4.public class AddInterface implements Interface 5. public int sum(T a1, T a2, T a3)6. int

7、b1 = a1.intValue( );7. int b2 = a2.intValue( );8. int b3 = a3.intValue( );9. return( b1 + b2 + b3 );10. / 方法方法sum结束结束11. public static void main(String args )12. AddInterface b = new AddInterface( );13. Integer a1 = new Integer(1);14. Integer a2 = new Integer(2);15. Integer a3 = new Integer(3);16. S

8、ystem.out.println( b.sum(a1, a2, a3);17. / 方法方法main结束结束18. / 类类AddInterface结束结束Java程序设计 2013例例3:采用第三种形式定义变量类型的泛型程序采用第三种形式定义变量类型的泛型程序1.class C12. public void methodA( )3. System.out.print(A);4. / 方法方法methodA结束结束5. / 类类C1结束结束6.interface C27. public void methodB( );8. / 接口接口C2结束结束9.class C3 extends C1

9、implements C210. public void methodB( )11. System.out.print(B);12. / 方法方法methodB结束结束13. / 类类C3结束结束14.class C4 15. public void methodD( T t )16. t.methodA( );17. t.methodB( );18. / 方法方法methodT结束结束19. / 类类C4结束结束20.public class Genericity21. public static void main(String args )22. C4 a = new C4( );23.

10、 a.methodD( new C3( ) );24. / 方法方法main结束结束25. / 类类Genericity结束结束Java程序设计 20135.2 枚举枚举创建枚举类型的主要目的是为了创建枚举类型的主要目的是为了定义一些枚举常量定义一些枚举常量。枚举的基本定义格式:枚举的基本定义格式: 枚举类型修饰词列表枚举类型修饰词列表 enumenum 枚举类型标识符枚举类型标识符 枚举常量枚举常量1, 1, 枚举常量枚举常量2, . ., 2, . ., 枚举常量枚举常量n n 枚举类型修饰词可以是枚举类型修饰词可以是publicpublic或缺省,但不能是或缺省,但不能是protecte

11、dprotected、privateprivate、abstractabstractJava程序设计 2013例例4:定义枚举类型:定义枚举类型Seasonenum Season 春季春季, 夏季夏季, 秋季秋季, 冬季冬季 / 枚举枚举Season结束结束注:注:定义枚举变量,如定义枚举变量,如:Season s;定义枚举数组变量,如定义枚举数组变量,如:Season s ;Season.春季春季, Season.夏季夏季, Season.秋季秋季, Season.冬冬季为枚举常量季为枚举常量Java程序设计 2013枚举变量和常量枚举变量和常量不能通过不能通过newnew运算符创建实例对象

12、,可直接通过枚举类型标运算符创建实例对象,可直接通过枚举类型标识符访问枚举变量,如:识符访问枚举变量,如: Season s1= Season. Season s1= Season.春季春季; ;可通过枚举变量访问枚举常量,如可通过枚举变量访问枚举常量,如 s. s.夏季夏季=Season.=Season.夏季夏季通过枚举常量,可调用成员方法通过枚举常量,可调用成员方法 (1) public String name();(1) public String name(); (2) public String toString(); (2) public String toString(); 如如

13、:s1.name():s1.name()或或Season.Season.春季春季.toString().toString()都返回都返回“春季春季”通过成员方法通过成员方法valuesvalues获得该枚举类型的所有枚举变量,如获得该枚举类型的所有枚举变量,如:Season s2=Season.values();:Season s2=Season.values();Java程序设计 20131.enum Season2. 春季春季, 夏季夏季, 秋季秋季, 冬季冬季 3. / 枚举枚举Seaon结束结束4.public class EnumDemo5. public static void m

14、ain(String args )6. Season sa = Season.values( );7. for ( int i=0; i sa.length; i+ )8. switch(sai)9. case 春季春季:10. System.out.println(春季花满天春季花满天);11. break;12. case 夏季夏季:13. System.out.println(夏季热无边夏季热无边);14. break;15. case 秋季秋季:16. System.out.println(秋季果累累秋季果累累);17. break;18. case 冬季冬季:19. System.o

15、ut.println(冬季雪皑皑冬季雪皑皑);20. break; 21. / switch结构结束结构结束22. / for循环结束循环结束23. / 方法方法main结束结束24. / 类类EnumDemo结束结束在switch中使用枚举类型各分支语句的枚举常量前不能加点运算符以及枚举变量或枚举类型标识符,如不能写作:case Season.春季;case sai.春季;例例5 :枚枚举举的的应应用用程程序序Java程序设计 20135.3 for语句的简化写法语句的简化写法for语句的简化写法格式:语句的简化写法格式:for ( 类型类型 标识符标识符 : 表达式表达式 ) 语句或语句块

16、语句或语句块如: Vector a = new Vector( ); a.add( a ); a.add( b ); a.add( c ); for ( String c : a) System.out.print(c + , );Java程序设计 2013第一类第一类for语句简化写法的完整格式语句简化写法的完整格式for ( Iterator i=表达式表达式.iterator( ); i.hasNext( ); ) 类型类型 标识符标识符 = i.next( ); 语句或语句块语句或语句块 Java程序设计 2013例例6:第一类:第一类for语句的简化写法程序语句的简化写法程序1.im

17、port java.util.Iterator;2.import java.util.Vector;3.public class VectorFor4. public static void main(String args )5. Vector a = new Vector( );6. a.add( a );7. a.add( b );8. a.add(c);9. for ( String c : a)10. System.out.print(c + , );11. System.out.println( );12. for ( Iterator i=a.iterator( ); i.has

18、Next( ); )13. String c = i.next( );14. System.out.print(c + , );15. 16. 17. Java程序设计 2013第二类第二类for语句简化写法的完整格式语句简化写法的完整格式类型类型 ca = 表达式表达式;for (int i=0; ica.length; i+) 类型类型 标识符标识符 = cai; 语句或语句块语句或语句块Java程序设计 2013例例7:for语句的简化写法在枚举类型中的应用程序语句的简化写法在枚举类型中的应用程序1.enum Season2. 春季春季, 夏季夏季, 秋季秋季, 冬季冬季 3. 4.pu

19、blic class EnumFor5. public static void main(String args )6. for ( Season c : Season.values( )7. System.out.print(c + , );8. System.out.println( );9. Season ca = Season.values( );10. for ( int i=0; i ca.length; i+ )11. Season c = cai;12. System.out.print(c + , );13. 14. 15. Java程序设计 2013例8:for语句的简化写

20、法在整数数组中的应用程序1.public class IntegerFor2. public static void main(String args )3. int a = 10, 20, 30, 40, 50;4. int s = 0;5. for ( int c : a)6. s += c; / 这里需要注意这里需要注意c是数组的元素,而不是相应的下标是数组的元素,而不是相应的下标7. System.out.println(数组数组a的元素之和等于的元素之和等于 + s);8. 9. s = 0;10. int ca = a;11. for ( int i=0; i ca.length; i+ )12. int c = cai;13. s += c;14. 15. System.out.println(数组数组a的元素之和等于的元素之和等于 + s);16. 17. Java程序设计 2013作业作业教材P173 第2题、第4题

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号