2021.03.19
第35次记录
课堂笔记:
1.JDK5.0之后推出的新特性:泛型
2.泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的(运行阶段没用)。
3.使用泛型的好处:
第一:集合中存储的元素类型统一了;
第二:从集合中取出的元素是泛型指定的类型,不需要进行大量的强制类型转换(向下转型);
4.泛型的缺点:
第一:导致集合中的元素缺乏多样性
5.大多数业务中,集合中元素的类型是统一的,所以泛型被经常使用。
代码演示:
public class GenericTest01 {
public static void main(String[] args) {
/* //不使用泛型机制,分析程序存在缺点
List myList = new ArrayList();
CatDemo cd = new CatDemo();
BirdDemo bd = new BirdDemo();
//将对象添加到集合当中
myList.add(cd);
myList.add(bd);
Iterator it = myList.iterator();
while(it.hasNext()){
Object obj = it.next();
if (obj instanceof AnimalDemo){
AnimalDemo ad = (AnimalDemo)obj;
ad.move();
}
}*/
//使用泛型
//用泛型来指定集合中存储的数据类型
List<AnimalDemo> myList = new ArrayList<AnimalDemo>();
CatDemo cd = new CatDemo();
BirdDemo bd = new BirdDemo();
myList.add(cd);
myList.add(bd);
Iterator<AnimalDemo> it = myList.iterator();
while (it.hasNext()){
AnimalDemo ad = it.next();
if (ad instanceof CatDemo){
CatDemo catdemo = (CatDemo)ad;
catdemo.catchMouse();
}
if (ad instanceof BirdDemo){
BirdDemo birddemo = (BirdDemo)ad;
birddemo.fly();
}
}
}
}
class AnimalDemo {
public void move(){
System.out.println("动物在移动");
}
}
class CatDemo extends AnimalDemo{
public void catchMouse(){
System.out.println("猫抓老鼠");
}
}
class BirdDemo extends AnimalDemo{
public void fly(){
System.out.println("鸟飞翔");
}
}
输出结果:
猫抓老鼠
鸟飞翔