201671010116. 2016-2017-10《Java程序设计》第10周学习总结
本周主要学习了泛型程序设计,了解到了泛型方法的好处,即泛型类提高了java程序的类型安全,消除了强制类型转换,提高了代码的重用率。
泛型的参数类型可以使用extends语句用于定义泛型变量的上界,extends关键字所声明的上界既可以是一个类,也可以是一个接口。如public NumberGeneric<T extends Number>中T所处理的类必须和Number有继承关系。选择extends的原因是更接近子类的概念。当然,泛型的参数类型还可以使用super语句用于定义泛型变量的下界,如List<? super CashCard>cards=new ArraysList<T>(),super关键字可固定泛型参数的类型为某种类型或其超类。为一个方法的参数限定类型时通常可使用通配符,如public static<T> void sort(T[ ] a,Compartor<? super T> c)
数组是协变的,但协变不能用在泛型类型中,这样会破坏将要提供的类型安全泛型。本章中还有一个易混淆的区分,那就是:T表示一种未知类型,而通配符?表示任何一种类型
在实验过程中发现对泛型方法不会使用。在看课本时能明白意思,但在具体程序中不会使用。