《【精品】Java实用教程第22讲泛型精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】Java实用教程第22讲泛型精品ppt课件.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java实用教程第22讲泛型第22讲泛型22.1 22.1 泛型泛型22.2 22.2 自定义泛型类和接口自定义泛型类和接口22.4 22.4 受限的泛型受限的泛型22.4 22.4 受限的泛型受限的泛型22.5 22.5 原始类型和向后兼容原始类型和向后兼容22.6 22.6 通配泛型通配泛型讲后练习讲后练习22.1 22.1 泛型泛型从JDK1.5开始,Java允许定义泛型类、泛型接口和泛型方法,已经使用泛型对Java API中的类、接口和方法进行了修改。如在JDK1.5之前接口Comparable的定义如下:public interface Comparable public int C
2、ompareTo(Object o)而在JDK1.5之后,其定义如下:public interface Comparable public int CompareTo(T o)从JDK1.5开始,Java允许定义泛型类、泛型接口和泛型方法,已经使用泛型对Java API中的类、接口和方法进行了修改。如在JDK1.5之前接口Comparable的定义如下:public interface Comparable public int CompareTo(Object o)而在JDK1.5之后,其定义如下:public interface Comparable public int CompareT
3、o(T o)程序中的(有时为,两者并无本质区别)表示形式泛型类型,随后可以使用一个实际的具体类型替换它。替换泛型类型称为泛型实例化。22.3 自定义泛型方法自定义泛型方法 从JDK1.5开始,还可以使用泛型类型来定义泛型方法,在调用方法的时候指明泛型的具体类型。Java泛型方法在方法返回值是容器类对象时广泛使用。编写Java泛型方法时,返回值类型和至少一个参数类型应该是泛型,而且类型应该一致,如果只有返回值类型或参数类型之一使用了泛型,那么这个泛型方法的使用就会受到很大的限制,几乎和不使用泛型一样。22.4 22.4 受限的泛型受限的泛型在定义泛型类型时,预设可以使用任何类型来实例化泛型类型。
4、但是如果想限制使用泛型类型时,可以将泛型指定为另一种类型的子类型,即:使用extends关键字指定泛型类型必须继承某个类,或者实现某个接口,也可以是这个类或接口本身。下面程序展示了使用受限泛型定义的方法: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
5、=new Ranctangle(10.4,20.2);MyShape shape=new MyShape();System.out.println(RestrictedGenericsMethod.equalArea(c,ranc);22.5 22.5 原始类型和向后兼容原始类型和向后兼容可以使用泛型类而不必指定具体类型,如:Box b=new Box();它大体等价于:Box b=new Box();不使用类型参数的泛型称为原始类型。在Java的早起版本中,允许使用原始类型向后兼容,但原始类型是不安全的,可能会出现运行时错误。22.6 22.6 通配泛型通配泛型为了解决类型被限制死了而不能动态根据实例来确定的缺点,引入了“通配符泛型”。通配泛型有三种形式:(1):称为非受限通配,等同于(2):称为受限通配,表示T或T的一个未知子类型。(3):称为下限通配,表示T或T的一个未知父类型。讲后练习讲后练习1、简述使用泛型类型的优势。2、什么是受限泛型类型?3、什么是非受限通配符?受限通配符?下限通配符?