




免费预览已结束,剩余23页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构(Java版),北京信息科技大学计算机学院段瑞雪,1,2,泛型,3,1publicclassGenericTest2publicstaticvoidmain(Stringargs)3Listlist=newArrayList();4list.add(qqyumidi);5list.add(corn);6list.add(100);78for(inti=0;ilist.size();i+)9Stringname=(String)list.get(i);/110System.out.println(name:+name);111213,Integer.parseInt(String),程序实现源码,泛型,泛型,即“参数化类型”。顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。一般用T表示。,4,5,1publicclassGenericTest223publicstaticvoidmain(Stringargs)4/*5Listlist=newArrayList();6list.add(qqyumidi);7list.add(corn);8list.add(100);9*/1011Listlist=newArrayList();12list.add(qqyumidi);13list.add(corn);14/list.add(100);/1提示编译错误1516for(inti=0;ilist.size();i+)17Stringname=list.get(i);/218System.out.println(name:+name);192021,publicclassListBooleanadd(Tkey);Tget(Tkey);Tset(Tkey);.,6,自定义泛型接口、泛型类和泛型方法,7,publicclassBoxprivateintt;publicvoidset(intt)this.t=t;publicintget()returnt;,8,publicclassBoxprivatefloatt;publicvoidset(floatt)this.t=t;publicfloatget()returnt;,9,publicclassBoxprivateTt;publicvoidset(Tt)this.t=t;publicTget()returnt;,泛型类,10,publicclassBoxprivateTt;publicvoidset(Tt)this.t=t;publicTget()returnt;,publicstaticvoidmain(Stringargs)BoxintegerBox=newBox();BoxstringBox=newBox();integerBox.set(newInteger(10);stringBox.set(newString(菜鸟教程);System.out.printf(整型值为:%dnn,integerBox.get();System.out.printf(字符串为:%sn,stringBox.get();,为什么引入泛型的概念?1.类型检查。2.节省空间,一个泛型类,可以处理各种数据类型的数据。,11,12,ADTSet数据:集合中的数据元素,数据元素的数据类型为T操作booleanisEmpty();intsize();Tsearch(Tkey);booleancontains(Tkey);booleanadd(Tx);Tremove(Tkey);voidclear();booleancontainsAll(Setset);booleanaddAll(Setset);,13,接口,14,声明一个接口(最简单的情况),15,接口的实际应用,16,interfaceUSB/操作标准publicvoidinstall();publicvoidwork();,classComputerpublicvoidplugin(USBusb)usb.install();usb.work();,classPhoneimplementsUSBpublicvoidinstall()System.out.println(安装手机驱动程序。);publicvoidwork()System.out.println(手机与电脑进行工作。);,classPrinterimplementsUSBpublicvoidinstall()System.out.println(安装打印机驱动程序。);publicvoidwork()System.out.println(进行文件打印。);,classMP3implementsUSBpublicvoidinstall()System.out.println(安装MP3驱动程序。);publicvoidwork()System.out.println(进行MP3拷贝。);,publicclassTestDemopublicstaticvoidmain(Stringargs)Computerc=newComputer();c.plugin(newPhone();c.plugin(newPrinter();c.plugin(newMP3();,为什么要引入接口的概念?1.减少重复定义。2.便于利用基类引用,处理各种类型的子类,实现多态。,17,18,接口和泛型,19,publicinterfaceSet泛型接口publicclassSortSetimplementsSetSetset=newSortSet();set.add(x),泛型通配符,T是类型参数,指定元素的数据类型,T的实际参数类型是类,在声明和创建对象时指定。“?”是泛型通配符,“?extendsT”是指T及其任意一个子类。“?superT”是指T及其任意一个父类。,20,21,泛型中占位符T和?有什么区别?,22,publicclassTeacherpublicStringstr;publicintage;publicintsex;publicTeacher(Stringstr,intage,intsex)this.str=str;this.age=age;this.sex=sex;,publicclassStudentextendsTeacherpublicStudent(Stringstr,intage,intsex)super(str,age,sex);,publicclassChildextendsStudentpublicChild(Stringstr,intage,intsex)super(str,age,sex);,Teacher,Student,Child,23,publicstaticvoidtest()ArrayListlist1=newArrayList();list1.add(newStudent(zhangsan,18,0);list1.add(newStudent(lisi,28,0);list1.add(newStudent(wangwu,24,1);/这里如果add(newTeacher(.);就会报错,show1(list1);/这里我们并没有给List指定具体的数据类型,/可以存放多种类型数据,publicstaticvoidshow1(Listlist)for(Objectobject:list)System.out.println(object.toString();,24,publicstaticvoidtest2()/这里我们并没有给List指定具体的数据类型,/可以存放多种类型数据ArrayListlist2=newArrayList();list2.add(newStudent(zhaoliu,22,1);list2.add(newTeacher(sunba,30,0);show2(list2);,publicstaticvoidshow2(Listlist)for(Objectobject:list)System.out.println(object);,25,publicstaticvoidtest3()ArrayListlist3=newArrayList();list3.add(newTeacher(zhaoliu,22,1);list3.add(newTeacher(sunba,30,0);show3(list3);/这里我们并没有给List指定具体的数据类型,/可以存放多种类型数据,publicstaticvoidshow3(Listlist)for(Objectobject:list)System.out.println(object);,26,publicstaticvoidtest3()/这里我们并没有给List指定具体的数据类型,/可以存放多种类型数据ArrayListlist4=newArrayList();list4.add(newStudent(sunba,30,0);list4.add(newTeacher(zhaoliu,22,1);show4(list4);,publicstaticvoidshow4(Listlist)for(Objectobject:list)System.out.println(object);,27,publicstaticvoidtest3()ArrayListlist5=newArrayList();list5.add(newChild(zhangsan,15,1);list5.add(newChild(sunba,30,0);list5.add(newChild(zhaoliu,22,1);show3(list5);ArrayListlist6=newArrayList();list6.add(newChild(zhangsan,15,1);list6.add(newStudent(sunba,30,1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年禁毒防毒知识竞赛考试题库(含答案)
- 2026届黑龙江省伊春市南岔区伊春二中化学高二第一学期期末学业质量监测模拟试题含答案
- 2025年融合通信行业当前竞争格局与未来发展趋势分析报告
- 写景作文我的家乡象山550字(9篇)
- 2025年文化创意产业发展政策解读试题及答案
- 2025年文化产业投资师资格考试试题及答案
- 2025年文创项目经理资格认定考试试卷及答案解析
- 2025年网页设计师资格考试试卷与答案
- 2025年网络营销专员职业能力评价考核试卷及答案
- 2025年年细胞治疗项目建议书
- 新员工入职职业道德培训
- 婚内债务隔离协议书范本
- 2025秋部编版(2024)八年级上册语文上课课件 第三单元 阅读综合实践
- TZZB3051-2023电气绝缘用玻璃纤维增强不饱和聚酯块状阻燃模塑料UP-BMC
- 企业职务津贴管理制度
- 足外翻康复训练讲课件
- “AI+知识图谱”赋能高职院校金课建设的研究与实践
- 含氰废水破氰工艺及操作详解
- 2025年贵州安大航空锻造有限责任公司-企业报告(业主版)
- 借车给他人免责协议书
- 设计总监协议书
评论
0/150
提交评论