Java学习记录
枚举与泛型
枚举
1.枚举类型可与取代以往常量定义的方式(即:将常量封装在接口或则类中),枚举类型是以类存在的,它继承java.lang.Enum类。
public interface Constants {
public static final int constantA = 1;
public static final int constantB = 2;
}
常量的修饰符为final和static,常量一般是不需要修改的值。
2.枚举类型赋予程序在编译时检查的功能,在枚举类型出现后,常量一般定义在枚举类型里。
public enum Constants {
//enum 是定义枚举类的关键字
costantsA,
costantsB
}
3.在向方法中传递参数时,若方法参数被要求是枚举类型,确传递其他类型的常数,会报错;枚举类型也可以在类的内部定义。
4.枚举类型继承了java.lang.Enum类,每一个枚举类型的成员都被定义为:
public static final ,且每一个枚举类型的成员都可以看做是枚举类型的实例,由于成员是static的,则可以通过类名直接调用
5.枚举常量是一个枚举类型的一个对象
泛型
1.泛型可以用于限定一个类返回和接受的值的类型
语法: 类名<T>
2.定义泛型时,可以声明多个类型
语法: 类名<T1,T2>
3.定义泛型类时,泛型用于声明数组类型
在泛型类中声明一个泛型数组,可以声明,但不能建立数组实例
private T[] arr; (√)
private T[] arr = new T[]; (×)
4.定义泛型集合类时,泛型用于声明容器的元素类型
5.泛型高级用法包括:限制泛型,使用类型通配符(限制泛型类实例的类型)
- 限制泛型类实例可用类型 : class 类名<T extends anyClass> ,anyClass指某个接口或类
在创建该泛型类对象时需要明确类型,不可以再修改
- 使用泛型通配符“?”:class 类名<? extends anyClass>, anyClass指某个接口或类
使用通配符表示限定类型未知,需要使用该泛型类对象时,可以定义后再修改(覆盖)