《Java基础入门》课程电子教案(PPT教学课件)第8章 泛型

第8章 泛型 Java基础入门(第3版)

学习目标/Target 掌握泛型类,能够独立定义和使用泛型类 掌握泛型接口,能够独立定义和使用泛型接口 了解泛型,能够说出泛型的作用和优点 掌握泛型方法,能够独立定义并使用泛型方法 掌握类型通配符,能够正确定义类型通配符的上限和下限

章节概述/ Summary 通过之前的学习,读者可以了解到,把一个对象存入集合后,再次取出该对象时,该 对象的编译类型就变成了Object类型(尽管其在运行时类型没有改变)。集合设计成这 样,提高了它的通用性,但是也带来了一些类型不安全和繁琐的问题,例如,集合可 以同时存储任何类型的对象,通常对取出之后的对象都需要强制类型转换,而且如果 不知道实际参数类型的情况,也无法进行强制类型转换。为了解决这些问题,从JDK 5版本开始引入了泛型,本章将围绕泛型的相关内容进行讲解

目录/Contents 01 02 03 泛型基础 泛型类 泛型接口 04 泛型方法 05 类型通配符

8.1 泛型基础

yx.ityxb.com 8.1.1 泛型概述 先定一个小 目标! 了解泛型概述,能够说出什么是泛型

yx.ityxb.com 8.1.1 泛型概述 泛型是在JDK 5中引入的一个新特性,其本质是参数化类型,也就是将具体的类 型形参化,参数化的类型(可以称之为类型形参)在使用或者调用时传入具体的 类型(类型实参),类似于调用方法时传入实参才确定方法形参的具体值。泛型 的声明由一对尖括号和类型形参组成,类型形参定义在尖括号中间,定义类、接 口和方法时使用泛型声明,定义出的类、接口和方法分别称为泛型类、泛型接口 和泛型方法。 泛型的概念

yx.ityxb.com 8.1.1 泛型概述 泛型的定义 使用泛型编程,会在使用或者调用时传入具体的类型时才确定最终的数据类型,所以集 合需要存储什么类型的数据,在创建集合时传入对应的类型即可。 定义泛型时类型形参由一对尖括号(<>)包含在中间,使用或者调用泛型时,需要将 类型实参写在尖括号(<>)之间。 JDK 5之后的类库中很多重要的类和接口都引入了泛型,例如集合体系中的类和接口。 下面分别演示未引入泛型和使用泛型编程的区别,体验泛型具体有什么好处

yx.ityxb.com 8.1.1 泛型概述 案例一演示 未引入泛型之前,如果想要创建一个只保存Integer类型的List集合。 具体代码如下所示。 public class Example01{ public static void main(String[] args) { // 创建一个只保存Integer类型的List集合 List intList = new ArrayList(); intList.add(1); intList.add(2); //因为失误存放了Integer类型之外的字符串数据 intList.add("3"); for (int i = 0; i < intList.size(); i++) { /*因为List里面默认取出的全部Object对象,所以使用之前需要进行强 * 制类型转换。集合内最后一个元素进行转换时候将出现类型转换异常 * */ Integer num=(Integer)intList.get(i); } } }

yx.ityxb.com 8.1.1 泛型概述 案例一代码分析 在案例一的代码中,第4行代码想创建一个只保存Integer类型的List集合,第5~8 行代码往集合中存放数据,由于存放数据时并没有出现编译异常,操作者认为存 入的数据类型都符合要求,但是在执行第13行代码时却会出现异常。因为在第8 行代码中存放了Integer类型之外的字符串数据。接下来使用泛型优化案例一代码
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Java基础入门》课程电子教案(PPT教学课件)第7章 集合.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第6章 Java API.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第5章 异常.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第4章 面向对象(下).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第3章 面向对象(上).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第2章 Java编程基础.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第1章 Java开发入门.pptx
- 《数据结构》课程教学课件(PPT讲稿)第三章 栈和队列.ppt
- 《数据结构》课程教学课件(PPT讲稿)第一章 绪论.ppt
- 《数据结构》课程教学大纲 Data Structure.doc
- 《Java程序设计》课程教学课件(PPT讲稿)Coding_Standard_Java.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象2-面向对象程序设计基础.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象1-软件开发周期简介.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)03 Java程序设计基础3—程序流程控制.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)03 Java程序设计基础2—数组.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)02 Java程序设计基础1—运算符和表达式.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)0 1Java概述.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)09 Java数据库编程(2/2).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)09 Java数据库编程(1/2).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)08 Java网络编程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第9章 反射机制.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第10章 IO.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第11章 JDBC.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第12章 多线程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第13章 网络编程.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.1 什么是数据结构 1.2算法及其描述.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.3 算法分析 1.4 数据结构的目标.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.1 线性表的定义 2.2 线性表的顺序存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.3 线性表的链式存储结构 2.4 顺序表和链表的比较.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.5 线性表的应用.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.1 栈.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.2 队列.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第4章 串.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第5章 递归.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第6章 数组和稀疏矩阵.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.1 树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.2 二叉树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.3 二叉树先序、中序和后序遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.4 二叉树的层次遍历 7.5 二叉树的构造.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.6 线索二叉树 7.7 哈夫曼树 7.8 二叉树与树、森林之间的转换.pptx
