- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第六章泛型与集合Java程序设计
本章主要内容泛型泛型是数据类型多态化的一种体现。集合在Java的API中,对常用的数据结构和算法做了一些规范和实现,形成一系列接口和类。这些抽象出来的数据结构和算法操作统称为Java的集合框架(JavaCollectionFramework,JCF)。程序员使用集合框架提供的接口和类,在具体应用时,不必考虑这些数据结构算法的实现细节,只需用这些类创建对象并直接应用即可,这大大提高了编程效率。2024/12/24李飞——计算中心2/30
泛型的基本概念泛型能解决什么样的问题?通过引用来实现参数类型的“任意化”。减少参数传递中显式的数据类型转换。如何理解泛型?是java解决通用数据类型问题的一种实现方案。对比Eg6.1和eg6.2可体会使用泛型与否的差别。2024/12/24李飞——东北大学秦皇岛分校计算中心3/35
使用泛型带泛型的类。带泛型的方法。定义带泛型的方法和定义普通成员方法的语句格式完全一样,只是方法的返回值类型和方法的参数可以使用泛型类而已。使用带泛型方法的方式与使用不带泛型方法的方式完全相同。带泛型的语句2024/12/24李飞——东北大学秦皇岛分校计算中心4/35[类说明修饰符]class类名类型参数列表[extends父类名][implements接口名列表]{……}类名类型实参列表对象名=new构造方法名类型实参列表([参数表]);
例6.3:定义有两个可变类型的泛型类。classTwoGenT,V{ privateTob1; privateVob2; publicTwoGen(To1,Vo2){ ob1=o1; ob2=o2; } publicTgetOb1(){ returnob1; } publicVgetOb2(){ returnob2; } publicvoidsetOb1(Tob1){ this.ob1=ob1; } publicvoidsetOb2(Vob2){ this.ob2=ob2; }2024/12/24李飞——东北大学秦皇岛分校计算中心5/35
publicvoidshowTypes(){System.out.println(TypeofTis+ob1.getClass().getName());System.out.println(TypeofVis+ob2.getClass().getName());}}?publicclasseg6_3{ publicstaticvoidmain(String[]args){ TwoGenInteger,StringtgObj=newTwoGenInteger,String(88,Generics);//使用泛型的语句 intt=tgObj.getOb1(); System.out.println(value:+t); Stringv=tgObj.getOb2(); System.out.println(value:+v); tgObj.setOb1(25);//使用带泛型的方法 tgObj.showTypes(); }}2024/12/24李飞——东北大学秦皇岛分校计算中心6/35
使用泛型的注意事项泛型的类型参数必须为类的引用,不能用基本类型(如int,short,long,byte,float,double,char,boolean)。泛型是类型的参数化,在使用时可以用作不同类型,但不同类型的泛型类实例是不兼容的。泛型的类型参数可以有多个,也可以是一个。泛型可以使用extends,super,?(通配符)来对类型参数进行限定不能实例化泛型类型变量。GenTa=newGen();//错误的GenStringa=newGen();//正确的不能创建带泛型类型的数组。如错误语句“TwoGenInteger,String[]tArray=newTwoGenInteger,String[3];”2024/12/24李飞——东北大学秦皇岛分校计算中心7/35
6.2集合在程序设计过程中,我们经常需要对一些具有特殊数据结构的多个对象进行操作,比如对表、栈等的对象操作。在Java的API中,对常用的数据结构和算法做了一些规范和实现,形成一系列接口和类。这些抽象出来的数据结构和算法操作统称为Java的集合框架(JavaCollectionFramework,JCF)。程序员使用集合框架提
文档评论(0)