枚举
- 枚举介绍
- 操作枚举类型成员的方法
- 枚举类型中的构造方法
- 枚举总结
- 泛型介绍
- 向上转型
- 定义泛型类
- 泛型类声名多个类型
- 泛型类声名数组类型
- 泛型类高级用法
- 限制泛型可用类型
- 使用类型通配符
- 继承泛型类与实现泛型接口
- 泛型总结
枚举介绍
继承java.lang.Enum
枚举类型可以取代常量的定义方式,即将常量封装在类或接口中。本质上还是类的形式。
- 单独定义枚举
使用方法: 枚举名.常量名
Constants.Constants_A;
- 类中定义枚举
这种内部类的形式,编译改类时,除了ConstantsTest.class类之外,还存在ConstantsTest $ 1.class和ConstantsTest $ Constants2.class 文件。
操作枚举类型成员的方法
每一个枚举类型成员都可以看作是枚举类型的一个实例,这些枚举类型成员都默认修饰为public、static、final
2. values()方法、valueOf()方法和compareTo()方法。
2. ordinal()方法。
枚举类型中,可以添加构造方法,但是这个构造方法必须为private修饰,防止客户代码实例化一个枚举对象。
注意: 枚举成员和构造方法有顺序的。
上述代码getDescription()、getI()方法重复,可以定义一个接口
枚举总结- 类型安全
- 运行效率高
- 完美交互
@syl 2021/04/26 0:38 未知
泛型
- 枚举介绍
- 操作枚举类型成员的方法
- 枚举类型中的构造方法
- 枚举总结
- 泛型介绍
- 向上转型
- 定义泛型类
- 泛型类声名多个类型
- 泛型类声名数组类型
- 泛型类高级用法
- 限制泛型可用类型
- 使用类型通配符
- 继承泛型类与实现泛型接口
- 泛型总结
定义安全的类型,传参是也限制必须为某个类型的变量。
向上转型
定义泛型类语法:类型< T >
泛型类声名多个类型
定义泛型类时,可以声名多个类型
MutiOverClass<T1,T2>
//MutiOverClass:泛型类名称
//这样实例化就可以定义多个类型
MutiOverClass<Boolean,Float> new MutiOverClass<Boolean,Float>;
泛型类声名数组类型
注意: 不可以使用泛型来建立数组的实例。
public class Test<T>{
//private T[] array = new T[10];//不能使用泛型来建立数组的实例。
}
限制泛型可用类型
class 类名称<T extends anyClass>
使用泛型限制后,泛型类的类型必须实现或继承了anyClass这个类或接口。
使用类型通配符
泛型类名称<? extends List> a = null;
List<String> l1 = new ArrayList<String>();
l1.add("A"); //在集合类添加内容
l1.set(0,"B"); //可以在集合类改变内容
List<?> l2 =l1;
l2.add("C"); //可以在集合类添加内容
//l2.set(0,"D");//使用?通配符不可以改变集合类的内容
List<?> l3 = new LinkedList<Integer>();
继承泛型类与实现泛型接口
SubClass类继承ExtendClass类时保留父类的泛型类型,需要在继承时指明,如果没有指明,直接使用extends ExtendClass语句进行继承操作,则SubClass类中的T1,T2,T3都会自动变为Object,一般情况下都将父类的泛型类型保留
泛型总结- 泛型的类型参数只能是类类型,不可以是简单类型。
- 泛型的类型个数可以是多个。
- 可以使用extends关键字限制泛型的类型。
- 可以使用通配符限制泛型的类型。
@syl 2021/04/26 15:37 阴 小雨