本篇内容主要讲解“Java1.5的Enum类型使用时需要注意什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java1.5的Enum类型使用时需要注意什么”吧!
注意点:
1。所有创建的枚举类型都扩展于 java.lang.Enum. Enum 是在J2SE 5.0里定义的一个新类, 它本身不是枚举类型.在创建枚举类型时,必须用enum关键字,不能直接地定义一个继承Enum的类来创建一个枚举类型,尽管所有创建的枚举类型实际上都是Enum 的子类.
2。枚举类型里定义的每一个值都是枚举类型的一个实例,缺省时都将映射到Enum(String name, int ordinal) 构造函数中.枚举类型可以使用参数为定义一些自己的构造函数。
另外要强调的两点:
一是这些枚举类型的构造函数都是私有的.它是不能被其它的类或者其它的枚举类型调用的. 而且这个私有修饰符是由编译器自动加的,如果我们定义这些构造函数时,在前面加上public 修饰符, 就会导致编译错误,
二是变量定义必须在枚举类型值定义之后
3。枚举类型每一个值都是public, static andfinal的.也就是说,这些值是唯一的而且一旦定义了是不能被重写或修改.而且尽管在枚举类型每一个值声明时没有出现static关键字,实际上值都是静态的, 而且我们不能在值前面加上static, public,final 修饰符
4。Switch语句里使用枚举类型时,一定不能在每一个枚举类型值的前面加上枚举类型的类名(case后面的值),否则编译器就会报错
5。在J2SE 5.0 的java.util 程序包中提供两个新类:EnumMap 和EnumSet,这两个类与枚举类型的结合应用可使以前非常繁琐的程序变得简单方便.EnumMap 类提供了java.util.Map接口的一个特殊实现,该接口中的键(key)是一个枚举类型
6。特定于常量的类主体 :
提到枚举类型可以定义自己的函数,其实更进一步,枚举类型的每一个值都可以实现枚举类型里定义的抽象函数
------------------------------------------
enum Size {
Small(0.8),
Medium(1.0),
Large(1.2);
private double pricingFactor; // 符合2.2的要求,变量定义必须在枚举类型值定义之后
Size(double p) {
pricingFactor = p;
}
public double getPricingFactor() {
return pricingFactor;
}
}
---------------------------------------------
enum的预定义方法
完整的方法集合(E 表示枚举类型自身):
* public int compareTo(E e)
* public boolean equals(Object o)
* public final Class
* public int hashCode()
* public String name()
* public int ordinal()
* public String toString()
* public static<T extends Enum
一些方法看起来很熟悉,而其他一些方法则是特定于 Enum 类的。
compareTo()、equals() 和 hashCode() 方法是典型的 Object 和 Comparable 方法,其中,compareTo()报告声明元素的顺序。name() 和 ordinal() 方法返回构造函数参数,而 toString() 返回名称。
getDeclaringClass()和 valueOf() 方法需要稍多一些解释。getDeclaringClass() 方法类似于 Object 的 getClass()方法,但它没必要返回相同的类。根据这个方法的 Javadoc 的说明:对于具有特定于常量的类主体的 enum 常量,该方法返回的值可能不同于Object.getClass() 方法返回的值。
到此,相信大家对“Java1.5的Enum类型使用时需要注意什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!