Java泛型编程泛型介绍09课件讲解.pptxVIP

  • 0
  • 0
  • 约2.59千字
  • 约 77页
  • 2026-02-07 发布于陕西
  • 举报

Java泛型编程:泛型介绍;泛型的本质

为什么使用泛型

泛型使用方式;;在Java5之前使用Object类来表示任意类型的数据:编译时无法检查类型安全,容易引起运行时异常;需要进行类型转换,导致代码冗长且不够优雅。

Java泛型(generics)是JDK5中引入的一个新特性:可以在编译时确定数据类型,提高代码的可读性和可维护性

;泛型编程是Java软件工程师技能要求;泛型的本质是参数化类型:类型指定一个参数,使用时再指定此参数具体的值,这个类型就可以在使用时决定了。

;;Java标准库提供的ArrayList,是可变长度的数组,标准库ArrayList是泛型数组,如果ArrayList不使用泛型参数,我们看看会有什么问题。;这个ArrayList用于存储Integer数据类型会导致强制转型。

这个ArrayList用于存储Integer数据类型会导致不方便而且容易出错。;解决以上两个问题,可以单独写一个IntegerArrayList类,存入的必须是Integer,取出的也一定是Integer,不需要强制转型

这又会导致新的问题,如果要存储Long,还需要为Long单独编写一种ArrayList;如果要存储Double,还需要为Double单独编写一种ArrayList;要写出所有类型的ArrayList数组不现实,须把ArrayList变成一种模板;保证了类型的安全性。

消除强制转换。

避免了不必要的装箱、拆箱操作,提高程序的性能。

提高了代码的重用性。;;泛型类:把泛型定义在类上。

泛型接口:把泛型定义在方法上。

泛型方法:调用方法的时候指明泛型的具体类型。

;1、泛型本质;

2、为什么使用泛型;

3、泛型使用方式。

;Java泛型编程:泛型类;使用简单泛型类

使用带多个泛型参数类;使用自定义

多个泛型参数类;按照某种类型编写类

;标记要进行参数化的数据类型,示例中使用Integer

;把标记的参数化的数据类型用T替换,同时在类名后添加T,申明T

;使用自定义泛型类

;使用自定义

多个泛型参数类;按照多个泛型参数编写类

;标记要进行参数化的多个数据类型,示例中使用Integer,String类型

;把标记的参数化的数据类型用K,V替换,同时在类名后添加K,V,申明K,V

;使用自定义多参数泛型类

;1、使用简单泛型类;

2、使用带多个泛型参数类;

;Java泛型编程:泛型接口;自定义泛型接口

实现Iterator泛型接口完成数组反序的迭代类;;按照某种类型编写接口

;标记要进行参数化的数据类型,示例中使用String

;把标记的参数化的数据类型用T替换,同时在接口名后添加T,申明T

;实现自定义泛型接口类

;;Iterator泛型接口介绍

;定义实现Iterator接口的ReversIterator类

;实现Iterator接口方法

;main函数中使用ReversIterator类

;

1、自定义泛型接口;

2、实现Iterator泛型接口完成数组反序的迭代类;

;Java泛型编程:泛型方法;泛型方法介绍;

普通泛型方法使用;

静态泛型方法;

可变参数的泛型方法;;类中的方法声明仅用于自身的泛型,这种方法叫做泛型方法

泛型列表中声明的泛型,可用于该方法的返回类型声明、参数列表类型声明和方法代码中的局部变量的类型声明

类中其它方法不能使用当前方法声明的泛型

;添加类型约束只作用于一个方法的多个参数之间、而不涉及到类中的其它方法时

施加类型约束的方法称为静态方法,只能将其定义为泛型方法,因为静态方法不能使用其在所在类的类型参数

;访问修饰符与返回值类型中间的泛型标识符T,E,…是泛型方法的标志

泛型方法声明时的泛型标识符T,E,…表示在方法可以使用声明的泛型类型

与泛型类相同,泛型标识符可以是任意类型,常见的如T,E,K,V等

泛型方法可以声明为static的,并且与普通的静态方法是一样的

;;普通泛型方法声明;普通泛型方法调用

;;静态泛型方法声明

;静态泛型方法调用;;可变参数的泛型方法声明

;可变参数的泛型方法使用

;

1、泛型方法介绍;

2、普通泛型方法使用;

3、静态泛型方法;

4、可变参数的泛型方法

;Java泛型编程:类型通配符;泛型中通配符介绍;

类型通配符使用;;定义泛型类,泛型方法,泛型接口使用很多不同的类型参数符号,比如T,E,K,V

T(type)表示具体的一个java类型

KV(keyvalue)分别代表java键值中的KeyValue

E(element)代表Element

;类型通配符就是一个问号?

类型通配符就是使用?代替具体的类型实参

比如ArrayList?,它的元素类型可以匹配任何类型

;Object类是java中所

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档