最新Java实用教程第22讲泛型(共14张PPT课件).pptx
-
资源ID:24510526
资源大小:117.79KB
全文页数:14页
- 资源格式: PPTX
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
最新Java实用教程第22讲泛型(共14张PPT课件).pptx
第22讲泛型 泛型是指参数化类型的能力,其最初的目的是希望(xwng)类或方法能够具备最广泛的表达能力。可以定义带泛型类型的类或方法,随后编译器会用具体类型来替换它。在程序中使用泛型的好处是能够在编译时检查出错误,而不是在运行时刻。第一页,共十四页。第22讲泛型 22.1 22.1 泛型泛型 22.2 22.2 自定义泛型类和接口自定义泛型类和接口 22.4 22.4 受限的泛型受限的泛型 22.4 22.4 受限的泛型受限的泛型 22.5 22.5 原始类型原始类型(lixng)(lixng)和向后兼容和向后兼容 22.6 22.6 通配泛型通配泛型 讲后练习讲后练习第二页,共十四页。22.1 22.1 泛型泛型从JDK1.5开始,Java允许定义泛型类、泛型接口和泛型方法,已经使用(shyng)泛型对Java API中的类、接口和方法进行了修改。如在JDK1.5之前接口Comparable的定义如下:public interface Comparable public int CompareTo(Object o)而在JDK1.5之后,其定义如下:public interface Comparable public int CompareTo(T o)第三页,共十四页。从JDK1.5开始,Java允许定义泛型类、泛型接口和泛型方法,已经使用泛型对Java API中的类、接口和方法进行了修改。如在JDK1.5之前(zhqin)接口Comparable的定义如下:public interface Comparable public int CompareTo(Object o)而在JDK1.5之后,其定义如下:public interface Comparable public int CompareTo(T o)第四页,共十四页。程序中的(有时为,两者并无本质区别)表示形式泛型类型,随后可以使用一个实际(shj)的具体类型替换它。替换泛型类型称为泛型实例化。第五页,共十四页。22.2 22.2 自定义泛型类和接口自定义泛型类和接口(ji ku)(ji ku)创建“容器(Collection,集合)类”是促使泛型出现的原因之一。泛型可以使集合记住其内(q ni)各元素的类型,并且能够在编译时找出错误。JDK1.5之后,已经使用泛型对Java API进行了改写,下面程序展示了使用泛型改写后的ArrayList类的用法:import java.util.*;public class TestGenericsAPI public static void main(String args) List list = new ArrayList();第六页,共十四页。list.add(hello );list.add(java );/list.add(2);for (int i = 0; i list.size(); i+) String name = list.get(i);System.out.println(name: + name);第七页,共十四页。22.3 自定义泛型方法自定义泛型方法(fngf) 从JDK1.5开始,还可以使用泛型类型来定义泛型方法(fngf),在调用方法(fngf)的时候指明泛型的具体类型。Java泛型方法在方法返回值是容器类对象时广泛使用。编写Java泛型方法时,返回值类型和至少一个参数类型应该是泛型,而且类型应该一致,如果只有返回值类型或参数类型之一使用了泛型,那么这个泛型方法的使用就会受到很大的限制,几乎和不使用泛型一样。第八页,共十四页。22.4 22.4 受限的泛型受限的泛型在定义泛型类型时,预设可以使用任何类型来实例化泛型类型。但是如果想限制使用泛型类型时,可以将泛型指定为另一种类型的子类型,即:使用extends关键字指定泛型类型必须继承某个类,或者实现某个接口(ji ku),也可以是这个类或接口(ji ku)本身。下面程序展示了使用受限泛型定义的方法:public class RestrictedGenericsMethod public static boolean equalArea(E obj1,E obj2)第九页,共十四页。return obj1.getArea() = obj2.getArea();public static void main(String args) Circle c = new Circle(20.3);Ranctangle ranc = new Ranctangle(10.4,20.2);MyShape shape = new MyShape();System.out.println(RestrictedGenericsMethod.equalArea(c, ranc);第十页,共十四页。22.5 22.5 原始类型原始类型(lixng)(lixng)和向后兼容和向后兼容可以使用泛型类而不必指定具体(jt)类型,如:Box b = new Box();它大体等价于:Box b = new Box();不使用类型参数的泛型称为原始类型。在Java的早起版本中,允许使用原始类型向后兼容,但原始类型是不安全的,可能会出现运行时错误。第十一页,共十四页。22.6 22.6 通配泛型通配泛型为了解决类型被限制死了而不能动态根据实例来确定的缺点(qudin),引入了“通配符泛型”。通配泛型有三种形式:(1):称为非受限通配,等同于(2):称为受限通配,表示T或T的一个未知子类型。(3):称为下限通配,表示T或T的一个未知父类型。第十二页,共十四页。讲后练习讲后练习(linx)(linx)1、简述使用泛型类型的优势。2、什么(shn me)是受限泛型类型?3、什么是非受限通配符?受限通配符?下限通配符?第十三页,共十四页。内容(nirng)总结第22讲泛型。public int CompareTo(Object o)。public interface Comparable 。public int CompareTo(T o)。i list.size()。String name = list.get(i)。public class RestrictedGenericsMethod 。下限(xixin)通配符第十四页,共十四页。