java枚举:
一,枚举型常量
枚举是一个特殊的Class,相当于final static 修饰,不能被继承,它的构造方法强制被私有化,所有的枚举都继承自java.lang.Enum类,枚举对象不能再继续继承其他类.
每个枚举变量都是枚举类colorEnum的实例,每个成员变量都是final static修饰
二,带参数的枚举
public enum Ch2 {
PC("电脑"),
MID("平板电脑"),
PHONE("手机");
private String name;
Ch2(String name) {
this.name = name;
}
}
三:
定义枚举类的关键字是enum,而不是enum,所有关键字都是小写的,在定义枚举项时,多个枚举项之间使用逗号分隔,最后一个枚举项后需要给出分号!
四,Enum中的方法
1,int compare To(E e) 比较枚举常量在枚举类中声明的顺序
2,boolean equals(Object o): 比较两个枚举常量是否相等
3,int hashCode() :返回枚举常量的hashCode
4,String name():返回枚举常量的名字
5,int ordinal():返回枚举常量在枚举类中声明的序号,第一个枚举常量序号为0;
6,String toString();把枚举常量转换成字符串
7,static T valueof(Class enumType,String name):把字符串转换成枚举常量.
五,枚举类的构造器
枚举类的构造器默认都是private修饰,而且只能是private,因为枚举类不能让外界来创建
枚举常量必须在枚举类中所有成员的上方声明.创建枚举项就等于调用本类的无参构造器
六,
枚举类和正常类一样,可以有实例变量,实例方法,静态方法等等,只不过它的实例个数有限制,不能再创建实例而已
枚举类中还可以有抽象方法
泛型:
E e :Element元素
T T :Type 类型
不使用泛型的好处:
集合不使用泛型,默认的类型就是Object类型,可以存储任意类型的数据
弊端就是不安全,会引发异常
使用泛型的好处:
避免了类型转换的麻烦,存的是什么类型,取出的就是什么类型,把运行期异常提示到了编译期
弊端:泛型是什么类型,就只能存储什么类型的数据
泛型定义在方法的修饰符和返回值类型之间
格式: 修饰符<泛型> 返回值类型 方法名(参数列表(使用泛型)){方法体}
通配符:?
代表任意的数据类型.此时只能接收数据,不能往集合中存储数据
不能创建对象使用,只能作为方法的参数使用
一道练习题:
下面关于泛型的描述中错误的一项是?()
(A)、“? extends 类”表示设置泛型上限;
(B)、“? super 类”表示设置泛型下限;
(C)、利用“?”通配符可以接收全部的泛型类型实例,但却不可修改泛型属性内容; (D)、如果类在定义时使用了泛型,则在实例化类对象时需要设置相应的泛型类型,否则程 序将无法编译通过
答案:D 解析:在实例化对象时,如果不指定泛型,则自动识别为Object类
点 个 赞 吧 !