java基础之枚举类
枚举类型是JDK5.0的新特征,常见使用于switch语句
一、枚举类的定义
1 | public enum Color{ |
显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类,代码编译之后发现,编译器将 enum类型单独编译成了一个字节码文件:Color.class
1 | final enum hr.test.Color { |
Color枚举类就是class,而且是一个不可以被继承的final类。其枚举值(RED,BLUE…)都是Color类型的类静态常量, 我们可以通过下面的方式来得到Color枚举类的一个实例:Color c=Color.RED
二、枚举类的构造器
构造器只是在构造枚举值的时候被调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15enum Color{
RED(255,0,0),BLUE(0,0,255),BLACK(0,0,0),YELLOW(255,255,0),GREEN(0,255,0);
//构造枚举值,比如RED(255,0,0)
private Color(int rv,int gv,int bv){
this.redValue=rv;
this.greenValue=gv;
this.blueValue=bv;
}
public String toString(){ //覆盖了父类Enum的toString()
return super.toString()+“(”+redValue+“,”+greenValue+“,”+blueValue+“)”;
}
private int redValue; //自定义数据域,private为了封装。
private int greenValue;
private int blueValue;
}构造器只能私有private,绝对不允许有public构造器。 这样可以保证外部代码无法新构造枚举类的实例
三、枚举类的方法
1 | //ordinal方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。 |