《Java实用教程第22讲泛型ppt课件》由会员分享,可在线阅读,更多相关《Java实用教程第22讲泛型ppt课件(13页珍藏版)》请在金锄头文库上搜索。
1、第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允许定义泛型类、泛型接口和泛型方法,曾经
2、运用泛型对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之前接口Comparable的定义如下:public interface Comparabl
3、e public int CompareTo(Object o)而在JDK1.5之后,其定义如下:public interface Comparable public int CompareTo(T o)程序中的有时为,两者并无本质区别表示方式泛型类型,随后可以运用一个实践的详细类型交换它。交换泛型类型称为泛型实例化。22.2 22.2 自定义泛型类和接口自定义泛型类和接口创建“容器Collection,集合类是促使泛型出现的缘由之一。泛型可以使集合记住其内各元素的类型,并且可以在编译时找出错误。JDK1.5之后,曾经运用泛型对Java API进展了改写,下面程序展现了运用泛型改写后的Arra
4、yList类的用法: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 自定义泛型方法自定义泛型方法 从JDK1.5开场,还可以运用泛型
5、类型来定义泛型方法,在调用方法的时候指明泛型的详细类型。Java泛型方法在方法前往值是容器类对象时广泛运用。编写Java泛型方法时,前往值类型和至少一个参数类型应该是泛型,而且类型应该一致,假设只需前往值类型或参数类型之一运用了泛型,那么这个泛型方法的运用就会遭到很大的限制,几乎和不运用泛型一样。22.4 22.4 受限的泛型受限的泛型在定义泛型类型时,预设可以运用任何类型来实例化泛型类型。但是假设想限制运用泛型类型时,可以将泛型指定为另一种类型的子类型,即:运用extends关键字指定泛型类型必需承继某个类,或者实现某个接口,也可以是这个类或接口本身。下面程序展现了运用受限泛型定义的方法:p
6、ublic 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(RestrictedGenericsMe
7、thod.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、什么是非受限通配符?受限通配符?下限通配符?