泛型
复习知识
构造器
1)即为构造方法,方法名与类名相同,没有返回值,不能声明void
2)构造方法的定义
public 类名()
向下转型,向上转型,复习一下
1)向上转型:将子类转化为父类,Father f = new son(); f可以调用父类的方法,但是不能调用子类方法,相当于瘦身
2)向下转型:将父类转化为子类,不能直接转,只能用于先转上去再转回来的情况
基本数据类型和引用类型
1)所有的非基本数据类型都是引用数据类型
2)我们将基本数据类型转化为引用数据类型的过程叫做装箱,相应的,我们把从引用数据类型转化为基本数据类型的过程叫做拆箱
接口中的成员都是静态性质的
为什么用泛型
1)编译时,检查元素类型,提高了安全性
2)减少了类型转换的次数,提高了效率
3)不再提示编译警告
泛型的语法
1)泛型的声明
class 类名<k,v>
k,v表示类型,只能是引用类型
2)泛型的使用形式
List <Integer> list1 = new ArrayList<Integer>();
List <Integer> list2 = new ArrayList<>();//等价于上面这句
List list2 = new ArrayList();//默认给她的泛型是<Object>
自定义泛型类
1)基本语法
class 类名 <T,R...>//可以有多个泛型
2)注意事项
a.使用泛型的数组不能初始化
b.静态方法中不能使用类的泛型
c.泛型类的类型,是在创建对象时确定的,默认为Object
3)自定义泛型方法
public<T>void fly()
注意区分 pubic void fly(T t)//只是使用了泛型
泛型的继承和通配符
1)泛型不具备继承性
2)<?>:支持任意泛型类型
3)<? extends A>支持A类以及A类的子类,规定上限为A
4)<? super A>支持A类以及A类的父类,规定了下限为A
JUnit使用
1)基本介绍
JUnit是Java的单元测试框架
2)使用
在方法前面 @Test + 快捷键Alt+enter,可以直接测试方法