《Java面向对象》课件-6.2 泛型_第1页
《Java面向对象》课件-6.2 泛型_第2页
《Java面向对象》课件-6.2 泛型_第3页
《Java面向对象》课件-6.2 泛型_第4页
《Java面向对象》课件-6.2 泛型_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块六集合与泛型目录/Contents01List集合02泛型0304Map集合Stream流泛型任务二学习目标掌握泛型的使用,能够使用泛型指定集合中元素的类型

先定一个小目标!泛型为了避免进行强制类型转换,同时提高类型的安全性,Java引入了“参数化类型(parameterizedtype)”的概念,也就是泛型。泛型就是指给类型指定一个参数,在使用时再指定此参数的具体值,这样一来就可以根据不同的需求操作不同类型的数据,使得代码更加灵活和可扩展。集合引入泛型之后,会在使用或者调用时传入具体的类型以确定最终的数据类型,所以集合需要存储什么类型的数据,在创建集合时传入对应的类型即可。泛型定义泛型时,类型参数由一对尖括号(<>)包含在中间。下面使用泛型优化文件Example06.java,将第5行代码修改为如下代码。List<Integer>list=newArrayList<>();上述代码指定了List集合中元素的类型为Integer,这样编译器在编译期就会做类型检查,从而限制List集合中只能存储Integer类型的元素。如果在集合中添加其他类型的元素,编译器会提示错误。如下图所示。泛型案例演示下面修改文件Example06.java,将List集合中原来的String类型的元素改为Integer类型,并在遍历List集合时将元素的类型由Object改为Integer。修改后的Example06.java源代码泛型案例演示修改后的案例运行结果如下图所示。泛型除了集合类等一些Java提供的类增加了泛型支持外,还可以根据需要自定义泛型类。例如,当一个类的行为和功能需要适用于多个不同类型的数据时,可以将这个类定义为泛型类。定义泛型类的语法格式如下:多学一招:自定义泛型类[修饰符]class类名<类型形参1,类型形参2,…,类型形参n>{//类的成员变量和成员方法}对上述语法格式的解释:(1)类名<类型形参>:是一个整体的数据类型,通常称为泛型类型。泛型多学一招:自定义泛型类(2)类型形参没有特定的意义,可以用任意一个大写字母表示,但是为了提高可读性,一般会使用有意义的字母表示。E:Element(元素),常在JavaCollection里使用,如List<E>,Iterator<E>,Set<E>。

K,V:Key,Value(Map的键值对)。N:Number(数字)。T:Type(类型),如String,Integer等。在泛型类中,类型形参可以用于指定成员变量的类型,成员方法的形参类型,以及成员方法的返回值类型。泛型多学一招:自定义泛型类除了可以在类中使用泛型,还可以在接口和方法中使用泛型。声明泛型接口的语法格式与泛型类的类似,具体如下:声明泛型方法的格式如下:[修饰符]interface接口名<类型形参1,类型形参2,…,类型形参n>{}[修饰符]<类型形参1,类型形参2,…>返回值类型方法名称(类型形参1形参变量1,类型形参2形参变量2,…){}泛型多学一招:自定义泛型类在泛型类、泛型接口和泛型方法中,泛型类型一旦确定就不能更改。然而,在有些情况下需要指定可以操作的类型为某个类的父类或子类,这时候可以使用限定通配符来限制可操作类型的范围。Java中的限定通配符分为两种,具体如下所示。<?extendsT>,上界通配符。表示限定传入的类型必须为T类型或T类的子类型。<?superT>,下界通配符。表示限定传入的类型必须为T类型或T类的父类型。使用限定通配符后,泛型类型必须用限定内的类型来进行初始化,否则会编译错误。此外,Java中还提供了<?>表示非限定通配符,可以匹配任意类型,用于在泛型类、泛型接口和泛型方法中指定不确定的类型。【案例6-1】社团成员管理案例描述某校创立了一个书法社团,目前正在面向全校学生招募社团成员。本案例要求为该社团做一个社团成员的管理系统,实现对社团成员的添加、移除、修改和查询功能。社团成员管理的具体要求如下。系统首页:用于显示社团成员管理系统的所有功能,并根据用户的选择进行对应的操作。添加功能:添加成员时需要输入成员的编号、姓名、年龄和年级。每个成员的成员编号唯一,若添加的编号已被占用,则提示用户重新输入。【案例6-1】社团成员管理案例描述修改功能:修改功能只支持修改成员的年龄和年级两个信息。修改成员信息时需要输入成员的编号,若成员编号存在,则提示输入修改后的年龄和年级;否则提示成员编号不存在的相关提示。查询功能:查询功能支持查询所有成员和按年级查询某个年级的所有成员。按年级查询成员信息时需要输入指定的年级,若社团中存在该年级的成员,则显示查询到的成员信息;否则,提示社团中没有该年级的成员。移除功能:移除成员时需要输入成员的编号,若成员编号存在,则进行删除并提示删除成功;否则提示成员编号不存在的相关警告。【案例6-1】社团成员管理案例效果【案例6-1】社团成员管理案例效果任务小结本章主要对Java中常用集合类和泛型的相关知识进行了讲解。首先讲解了集合的基础知识以及Collection集合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论