javach05泛型和枚举.ppt
《javach05泛型和枚举.ppt》由会员分享,可在线阅读,更多相关《javach05泛型和枚举.ppt(31页珍藏版)》请在三一办公上搜索。
1、Java程序设计Programming in Java,谷勇浩北京邮电大学 计算机学院,第 5 章 泛型和枚举,本章总体纲要,泛型枚举,泛型和枚举,泛型(Generics)与多态性相似:提高程序代码的复用性与多态性不同:减少数据的类型转换(p112)枚举通过定义枚举常量,在一定程度上增加程序代码的可读性,泛型定义格式,泛型:通过给类或接口增加类型参数实现,类型参数可以是任何对象或接口。类类修饰词列表 class 类名 extends 父类名 implements 接口名称列表 类体接口接口修饰词列表 interface 接口名 extends 接口名称列表 接口体,类型参数的定义格式,类型变量
2、标识符等价于“类型变量标识符 extends java.lang.Object”类型变量标识符 extends 父类型类型变量标识符 extends 父类型1&父类型2&.&父类型n要求:在各个类型中最多只能有1个是类,其余类型均为接口含义:所定义的类型变量具有格式中规定的各个父类型的所有能力,类型参数的使用,public class J_Add 具有泛型特性的类或接口,类型参数定义后,在类或接口体内可直接使用相应的类型变量(作为变量的类型或者方法的类型)在应用这些具有泛型特性的类或接口时,需要指明实际的具体类型,即J_Add对于第二种形式的定义,要求使用的实际类型必须是格式中父类型的子类型对
3、于第三种形式的定义,要求使用的实际类型必须具有格式中父类型的所有能力,示例1,/J_Add.java/泛型例程public class J_Add public String mb_sum(T a1,T a2,T a3)return(a1.toString()+a2.toString()+a3.toString();/方法mb_sum结束 public static void main(String args)J_Add b=new J_Add();Integer a1=new Integer(1);Integer a2=new Integer(2);Integer a3=new Intege
4、r(3);System.out.println(b.mb_sum(a1,a2,a3);/方法main结束/类J_Add结束,编译、运行&结果,示例1说明,类型T是类java.lang.Object的子类型,所以参数a1、a2、a3可以调用类java.lang.Object的成员方法toString(),该过程称为类型检查操作,在编译过程会进行差错操作,提高程序的安全性。J_Add b=new J_Add();定义类型为J_Add的变量b,同时创建一个类型为J_Add的实例对象。类J_Add的类型变量T所对应的实际类型还可以是其他类型,只要该类型是类java.lang.Object的子类型,如类
5、java.lang.Long,示例2,/J_AddInterface.java/泛型例程interface J_Interface public int mb_sum(T a1,T a2,T a3);/接口J_Interface结束public class J_AddInterface implements J_Interface public int mb_sum(T a1,T a2,T a3)int b1=a1.intValue();int b2=a2.intValue();int b3=a3.intValue();return(b1+b2+b3);/方法mb_sum结束,示例2,publ
6、ic static void main(String args)J_AddInterface b=new J_AddInterface();Integer a1=new Integer(1);Integer a2=new Integer(2);Integer a3=new Integer(3);System.out.println(b.mb_sum(a1,a2,a3);/方法main结束/类J_AddInterface结束,编译、运行&结果,示例3,J_Genericity.java输出结果AB例程说明class J_T,说明类型T是类J_C1的子类,同时也是实现接口J_C2的类。class
7、J_C3 extends J_C1 implements J_C2,说明类J_C3是J_C1的子类,同时用于实现接口J_C2的类。J_T a=new J_T()及a.mb_methodT(new J_C3),说明类J_C3是类型T的实际类型。,泛型的类型检查,在构造一个Generics对象时,编译器将首先检查参数化类型是否有效(例如是否满足限制条件等),确定所有参数化类型,然后编译器将在使用这些参数化类型的地方进行类型检查,如果符合定义,那么编译通过,否则将编译失败,报告类型检查错误。因此,通过这种方式,编译器可以检查出很多类型不匹配的错误,避免开发人员的错误,这也是Generics的重要优点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javach05 枚举
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5598373.html