一、枚举类型
1.使用枚举类型设置常量语法
public enun Constants{
Constants_A,
Constants_B,
Constants_C
}
enum是定义枚举类型关键字,constant(常量),当需要在程序中使用该常量时,可以使用Constants.Constants_A表示。
2.操作枚举类型的成员方法
values()
将枚举类型成员以数组的形式返回,也可以通过该方法获取枚举类型的成员 枚举类型名称.values()
valuesOf()
可以实现将普通字符串转化为枚举实例 枚举类型名称.valuesOf("字符串")
compareTo()
用于比较两个枚举对象在定义时的顺序 枚举对象.compareTo()
ordinal()
用于得到枚举成员的位置索引 索引值以0开始 枚举对象.ordinal()
3.枚举类型中的构造方法
修饰权限为pravite
4.使用枚举类型的优势
1)类型安全
2)数据定义紧凑有效
3)可以与其它程序部分完美交互
4)运行效率高。
*********************************************************************************
二、泛型
泛型实质上是使程序员定义安全的类型。向下转型操作通常会出现ClassCastException异常,说明“向下转型”操作通常会出现问题,而泛型机制有效解决了这一问题
1.定义泛型类
定义泛型类语法如下:
类名< T> 其中T代表一个类型的名称
2.泛型的常规用法
1)定义泛型类时声明多个类型 //!!!!!可以使用泛型机制时声明一个数组,但是不可以使用泛型来建立数组的实例
MutiOverClass<T1,T2>
MutiOverClass:泛型类名称 其中T1和T2为可能定义的类型
这样实例化指定类型的对象时就可以指定多个类型。如:
MutiOverClass<Boolean,Float>=new MutiOverClass<Boolean,Float>();
2)定义泛型类时声明数组类型
如:public class ArrayClass<T>{
private T[]array; //定义泛型数组
public void SetT(T[]array){
this.array;
}
public T[]getT(){
return array;
}
}
3)集合类声明容器的元素
使用K和V两个字符代表容器中的键值与键值相对应的具体值
常用的被泛型化的集合类
集合类 泛型定义
ArrayList ArrayList<E>
HashMap HashMap<K,V>
HashSet HashSet<E>
Vector Vector<E>
3.泛型的高级用法
1)限制泛型可用类型 //必须使用extends关键字
class 类名称<T extends anyClass> //其中,anyClass为某个接口或类。
2)使用类型通配符
泛型类名称<?extends List>a=null // 其中,<?extends List>表示类型未知,当需要使用该泛型对象时,可以单独实例化。
3)继承泛型类与实现泛型接口
4.泛型总结
1)泛型的类型参数只能是类类型,不可以是简单类型,如A<int>这样的定义是错误的。
2)泛型的类型个数可以是多个。
3)可以使用extends关键字限制泛型的类型。
4)可以使用通配符限制泛型的类型。
1.使用枚举类型设置常量语法
public enun Constants{
Constants_A,
Constants_B,
Constants_C
}
enum是定义枚举类型关键字,constant(常量),当需要在程序中使用该常量时,可以使用Constants.Constants_A表示。
2.操作枚举类型的成员方法
values()
将枚举类型成员以数组的形式返回,也可以通过该方法获取枚举类型的成员 枚举类型名称.values()
valuesOf()
可以实现将普通字符串转化为枚举实例 枚举类型名称.valuesOf("字符串")
compareTo()
用于比较两个枚举对象在定义时的顺序 枚举对象.compareTo()
ordinal()
用于得到枚举成员的位置索引 索引值以0开始 枚举对象.ordinal()
3.枚举类型中的构造方法
修饰权限为pravite
4.使用枚举类型的优势
1)类型安全
2)数据定义紧凑有效
3)可以与其它程序部分完美交互
4)运行效率高。
*********************************************************************************
二、泛型
泛型实质上是使程序员定义安全的类型。向下转型操作通常会出现ClassCastException异常,说明“向下转型”操作通常会出现问题,而泛型机制有效解决了这一问题
1.定义泛型类
定义泛型类语法如下:
类名< T> 其中T代表一个类型的名称
2.泛型的常规用法
1)定义泛型类时声明多个类型 //!!!!!可以使用泛型机制时声明一个数组,但是不可以使用泛型来建立数组的实例
MutiOverClass<T1,T2>
MutiOverClass:泛型类名称 其中T1和T2为可能定义的类型
这样实例化指定类型的对象时就可以指定多个类型。如:
MutiOverClass<Boolean,Float>=new MutiOverClass<Boolean,Float>();
2)定义泛型类时声明数组类型
如:public class ArrayClass<T>{
private T[]array; //定义泛型数组
public void SetT(T[]array){
this.array;
}
public T[]getT(){
return array;
}
}
3)集合类声明容器的元素
使用K和V两个字符代表容器中的键值与键值相对应的具体值
常用的被泛型化的集合类
集合类 泛型定义
ArrayList ArrayList<E>
HashMap HashMap<K,V>
HashSet HashSet<E>
Vector Vector<E>
3.泛型的高级用法
1)限制泛型可用类型 //必须使用extends关键字
class 类名称<T extends anyClass> //其中,anyClass为某个接口或类。
2)使用类型通配符
泛型类名称<?extends List>a=null // 其中,<?extends List>表示类型未知,当需要使用该泛型对象时,可以单独实例化。
3)继承泛型类与实现泛型接口
4.泛型总结
1)泛型的类型参数只能是类类型,不可以是简单类型,如A<int>这样的定义是错误的。
2)泛型的类型个数可以是多个。
3)可以使用extends关键字限制泛型的类型。
4)可以使用通配符限制泛型的类型。