网站大量收购独家精品文档,联系QQ:2885784924

《Java高级程序设计》课件——学习情境4 泛型机制.pptx

《Java高级程序设计》课件——学习情境4 泛型机制.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共100页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;一、应用场景

二、Java泛型的概念

三、泛型类的定义和使用

四、泛型方法的定义和使用

五、泛型接口的定义和使用;3;泛型的应用场景:

不想写多个重载函数的场景。

约束对象类型的场景,可以定义边界(Textends...),如JDK集合List,Set。

用户希望返回自定义类型的返回值场景,如Json返回Javabean。

在用反射的应用中,也经常会用到泛型,如ClassT。

对网页,对资源的分析,返回场景,一般都有泛型。

其实泛型的应用还是很广的,一句话就是希望将数据类型参数化的地方,就可以用它。;二、Java泛型的概念;publicclassGenericsClassNameT,SextendsT{

....

};可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。;Java泛型的作用

1.泛化

可以用T代表任意类型。Java语言支持泛型,许多重要的类,比如集合框架,都已经泛型化了。

2.类型安全

泛型的一个主要目标就是提高Java程序的类型安全,使用泛型可以使编译器知道变量的类型限制,进而可以在更高程度上验证类型假设。如果不用泛型,则必须使用强制类型转换。

;3.消除强制类型转换

泛型可以消除源代码中的许多强制类型转换,这样可以使代码更加可读,并减少出错的机会。

4.向后兼容

支持泛型的Java编译器(例如JDK1.5中的Javac)可以用来编译经过泛型扩充的Java程序(GenericsJava程序);三、泛型类的定义和使用;;publicclassBoxT{

publicbooleanadd(Tt){

}

publicStringget(intindex){

}

publicTTshow(){

}

};2.泛型类的使用;四、泛型方法的定义和使用;定义语法格式:;定义泛型方法时,必须在返回值前边加一个T,来声明这是一个泛型方法,持有一个泛型T。;在调用方法的时候确定泛型类型的参数值。例如:

BoxStringbox=newBox();

box.add(“Jacket”);

box.add(“shoes”);;说明几点

(1)使用泛型方法时,返回值或参数是泛型定义的,应该保持一致。

(2)如果定义类、接口时没有使用类型形参,但定义方法时可以定义类型形参。

(3)泛型方法中的类型形参声明以尖括号括起来,放在方法修饰符???方法返回值类型之间。

(4)泛型方法中的泛型参数无需显式传入实际类型参数。;五、泛型接口的定义和使用;这是一个实例代码

publicinterfaceGenericInterfaceT{

publicTTprint(Tt);

}

GenericInterface为泛型接口,T为参数化类型。

其中的泛型方法的定义参考《泛型方法的定义和使用》;2.泛型接口的使用;第二种使用方式。实现类也是泛型类。有些时候在定义一个类去实现泛型接口时,并不确定这个类将要实现哪种类型的类,接口中的泛型尚未确认,这时就要求这个实现类也必须定义为泛型类,而且泛型名称要一致。;接口类:GenericInterface.class;实现接口的类:GenericClass.class;创建类对象;泛型使用时的注意事项;④使用泛型时,泛型类型必须为引用数据类型,不能为基本数据类型。

⑤泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出。

⑥不可以定义泛型数组。

⑦泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出。;;小结;;一、任务描述

二、任务分析、设计

三、任务实施

四、运行结果;34;二、任务分析、设计;其类图如图4-1所示。;三、任务实施;其中声明泛型方法compare以实现对两个Pair对象的比较,返回值为布尔类型。在访问修饰符和返回值类型之间使用泛型K,V参数;第三步定义类PairUtil,实现泛型接口;第四步,编写测试类;首先创建两个PairString,String的对象p1和p2,然后使用new通过泛型接口的实现类创建utilBase对象,再通过该对象调用比较方法compare()进行比较p1和p2。;PairString,Integerp3=newPairString,Integer(age,67);

PairString,Integerp4=newPairString,Integer(age,67);

System.out.println(比较结果:p3=p4\t+utilBpare(p3,p4));;再创建两个PairString,String的对象p3和

文档评论(0)

青柠职教 + 关注
实名认证
服务提供商

从业10年,专注职业教育专业建设,实训室建设等。

1亿VIP精品文档

相关文档