关闭

java枚举小笔记

94人阅读 评论(0) 收藏 举报
分类:

注意点:

  • 1。所有创建的枚举类型都扩展于 java.lang.Enum. Enum 是在J2SE 5.0 里定义的一个新类, 它本身不是枚举类型.在创建枚举类型时,必须用enum 关键字,不能直接地定义一个继承Enum的类来创建一个枚举类型,尽管所有创建的枚举类型实际上都是Enum 的子类.
  • 2。枚举类型里定义的每一个值都是枚举类型的一个实例,缺省时都将映射到Enum(String name, int ordinal) 构造函数中.枚举类型可以使用参数为定义一些自己的构造函数。
    另外要强调的两点:
    一是这些枚举类型的构造函数都是私有的.它是不能被其它的类或者其它的枚举类型调用的. 而且这个私有修饰符是由编译器自动加的,如果我们定义这些构造函数时,在前面加上public 修饰符, 就会导致编译错误,
    二是变量定义必须在枚举类型值定义之后
  • 3。枚举类型每一个值都是public, static and final的.也就是说,这些值是唯一的而且一旦定义了是不能被重写或修改.而且尽管在枚举类型每一个值声明时没有出现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 getDeclaringClass()
* public int hashCode()
* public String name()
* public int ordinal()
* public String toString()
* public static

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:99728次
    • 积分:2159
    • 等级:
    • 排名:第17617名
    • 原创:123篇
    • 转载:32篇
    • 译文:0篇
    • 评论:47条
    最新评论