13.1枚举类型
枚举类型赋予程序在编译时进行检查的功能
13.1.1 使用枚举类型设置常量
常规定义常量的代码:
pubilc interface Constants{
public static fina int Constants_A=1;
public static fina int Constants_B=2;
}
使用枚举类型定义常量的语法:
public enum Constants{
Constants_A;
Constants_B;
}
例子:
13.1.2 深入了解枚举类型
1.values()方法
例子:
2.valueOf()方法与compare To()方法
例子:
3.ordinal()方法
例子:
4.枚举类型中的构造方法
语法:
例子;
13.1.3 使用枚举类型的优势
类型安全。
紧凑有效的数据定义。
可以和程序其他部分完美交互
运行效率高。
13.2泛型
12.2.1 回顾向上转型与向下转型
例子:
结果:
true
12.2
13.2.2 定义泛型类
语法:
类名<T>
例子:
13.2.3 泛型的常规用法
1.定义泛型类时声明多个类型
在定义泛型类时,可以声明多个类型。语法如下:
class MyClass<T1,T2>{ }
其中,T1和T2为可能被定义的类型。这样,在实例化指定类型的对象时就可以指定多个类型。例如:
MyCiass <Boolean,Floa> m = new MyClass <Boolean,Float>():
2.定义泛型类时声明数组类型
定义泛型类时也可以声明数组类型,下面的实例中定义泛型时便声明了数维类型
例子:
3.集合类声明容器的元素
例子:
13.2.4 泛型的高级用法
例子:
-
import java.util.ArrayList;
-
import java.util.HashMap;
-
import java.util.LinkedList;
-
import java.util.List;
-
public class LimitClass<T extends List> {
-
public static void main(String[] args) {
-
//可以实例化已经实现 List 接口的类
-
LimitClass<ArrayList> l1= new LimitClass<ArrayList>();
-
LimitClass<LinkedList> l2 = new LimitClass<LinkedList>();
-
//这句是错误的,因为 HashMap 类没有实现List()接口
-
LimitClass<HashMap> l3 = new LimitClass<HashMap>();
-
}
-
}
13.2.5 泛型总结
1.泛型的类型参数只能是类类型,不可以是简单类型,如 A<in>这种泛型定义就是错误的
2.泛型的类型个数可以是多个。
3.可以使用 extends 关键字限制泛型的类型
4.可以使用通配符限制泛型的类型。