2019秋JAVA第二周课程总结

Java初探

Java也是OOP,因而它和其他OOP基本要素一致。

包括 封装  继承 多态 

前两项都非常好理解,在多态(同一类不同表现形式)上难以深入理解

多态

(等号)左父右子为多态

只有方法能覆盖重写,变量不能。因而在多态代码中,创建一个父类下的一个子类的实例化对象,这个实例化对象是不可访问那个子类中所定义的变量。

//访问成员变量:

//直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。

Fu obj = new Zi();
//优先用Fu 类中变量,没有则向上找

一个实现类(小范围)可以向上转换为接口类型,可类比int自动转换为double。

因而,一个实现类是可以传入一个参数类型为接口类的方法的

 

泛型

以前学习的OOP语言(如Python,PHP等)是没接触过泛型的概念的,这里补充了解一下。

 

当一个类不确定要使用什么类型的时候,可以使用泛型 <E e> <t> ,在实例化对象的时候再确定具体使用什么数据类型

ArrayList <String> li = new ArrayList<>();

 

创建一个 String类型的 ArrayList

ArrayList li = new ArrayList();
//若不写泛型,则默认数据类型为object,可以存储任何类型

 

作为参数处理泛型时,可以通过泛型通配符来处理

public static void PrintArray(ArrayList<?> list)
{
Iterator<?> it = list.iterator()
....
}

 

这样,在传入参数时,就可自动识别到具体泛型是什么。

泛型上下限定

public static void get(Collection<? extends Number> coll)

public static void get(Collection<? super Number> coll)

 

posted @ 2019-09-09 16:47  harsonyoung  阅读(125)  评论(0)    收藏  举报