#1.泛型
1.对象实例化时不指定泛型,默认为:Object。
2.泛型不同的引用不能相互赋值。
3.加入集合中的对象类型必须与指定的泛型类型一致。
4.静态方法中不能使用类的泛型。
5.如果泛型类是一个接口或抽象类,则不可创建泛型类的对象。
6.不能在catch中使用泛型
7.从泛型类派生子类,泛型类型需具体化
4.泛型与继承的关系
A类是B类的子类,G是带泛型声明的类或接口。那么G(A)不是G(B)的子类!
5.通配符:?
A类是B类的子类,G是带泛型声明的类或接口。则G(?) 是G(A)、G(B)的父类!
①以List(?)为例,能读取其中的数据。因为不管存储的是什么类型的元素,其一定是Object类的或其子类的。
①以List(?)为例,不可以向其中写入数据。因为没有指明可以存放到其中的元素的类型!唯一例外的是:null
6*. List(? extends A) :可以将List(A)的对象或List(B)的对象赋给List(? extends A)。其中B 是A的子类
? super A:可以将List(A)的对象或List(B)的对象赋给List(? extends A)。其中B 是A的父类
#### 8.枚举与注解
一、枚举类
1.如何自定义枚举类。 枚举类:类的对象是有限个的,确定的。
1.1 私有化类的构造器,保证不能在类的外部创建其对象
1.2 在类的内部创建枚举类的实例。声明为:public static final
1.3 若类有属性,那么属性声明为:private final 。此属性在构造器中赋值。
2.使用enum关键字定义枚举类
2.1其中常用的方法:values() valueOf(String name);
2.2枚举类如何实现接口:
①让类实现此接口,类的对象共享同一套接口的抽象方法的实现。
①让类的每一个对象都去实现接口的抽象方法,进而通过类的对象调用被重写的抽象方法时,执行的效果不同
二、注解Annotation
1.JDK提供的常用的三个注解
@Override: 限定重写父类方法, 该注释只能用于方法
@Deprecated: 用于表示某个程序元素(类, 方法等)已过时
@SuppressWarnings: 抑制编译器警告
2.如何自定义注解
以SuppressWarnings为例进行创建即可:
@interface MyAnnotation
3.元注解:可以对已有的注解进行解释说明。(对其他注解添加注解)
Retention:SOURCE,CLASS(默认),RUNTIME :被修饰的注解的生命周期
Target:指明被修饰的注解能用于修饰哪些程序元素
Documented:javadoc(Retention必须设置为RUNTIME)