枚举类型是特殊的class
(1)Enum 最常用的用法是作为常量,
通常我们在代码里面定义常量的时候 用的是 public static final,现在有了 枚举类, 可以通过枚举类来定义常量
(2)在使用switch 语句进行分支判断,使用枚举类能够使代码具有更好的可读性
(3)枚举类可以额外定义自己的方法、覆盖父类Enum的方法,并且支持接口实现
代码如下:
public class EnumTest {
public static void main(String[] args) {
System.out.println("Test1:"+MyBook1.SUANFA);
System.out.println("Test2:"+MyColor2.RGB_RED);
System.out.println("Test3:"+MyBook3.BOOK1);
System.out.println("Test4:"+MyBook3.SHUJUJIEGOU);
}
}
enum MyBook1{
SUANFA,SHUJUJIGOU,DAOLUN
}
enum MyColor2{
RGB_RED(255,0,0),RGB_GREEN(0,255,0),RGB_BLUE(0,0,255);
private MyColor2(int r,int g,int b){
this.r=r;
this.g=g;
this.b=b;
System.out.println(this);
}
public String toString(){
return this.r+","+this.g+","+this.b;
}
private int r,g,b;
}
enum MyBook3 {
SUANFA,SHUJUJIEGOU,DAOLUN,
BOOK1("book1"),BOOK2("book2"),BOOK3("book3");
private MyBook3(String name){
bookName=name;
System.out.println(this);
}
private MyBook3(){
System.out.println(this);
}
public String toString(){
return bookName !=null?bookName:super.toString();
}
private String bookName;
}
运行结果如下:
Test1:SUANFA
255,0,0
0,255,0
0,0,255
Test2:255,0,0
SUANFA
SHUJUJIEGOU
DAOLUN
book1
book2
book3
Test3:book1
Test4:SHUJUJIEGOU
通过结果我们可以看见,Enum 能够起到一个常量的作用,另外我们在使用Enum 数据的时候,会首先初始化枚举类里的所有枚举数据,并且支持带参和无参的私有构造函数。
所有的枚举类都继承自Enum。