一、介绍
java 枚举类型的基本想法非常简单:
这些类通过共有的静态final域为每个枚举常量导出一个实例。
1、枚举类型没有可以访问的构造器,所以它是真的final类,仅仅有private构造器。
2、客户端不能创建枚举类型的实例,也不能对它进行扩展,因此不存实例,而只存在声明过程的枚举常量。也就是枚举类型是实例受控的。
3、它们是单例(Singleton)的范型化,本质上是单元素的枚举。
枚举类型保证了编译时的类型安全。包含同名常量的多个枚举类型可以在一个系统中和平共处。因为每个类型都有自己的命名空间。可以新增或者重新排列枚举类型中的常量,而无需重新编译它的客户端代码。
二、案例
public enum ColorEnum {
ORANGE("橙色"),
GREY("灰色"),
GLODEN("金色"),
BROWN("棕色"),
SILVERY("银色");
private String value;
ColorEnum(String value){
this.value = value;
}
public String getValue(){
return value;
}
public static void main(String[] args) {
String color = ColorEnum.GLODEN.getValue();
String color2 = ColorEnum.GLODEN.value;
System.out.println(color+"-----"+color2);
ColorEnum[] list = ColorEnum.values();
System.out.println(Arrays.asList(list));
for(ColorEnum colorEnum : list){
System.out.println(colorEnum.value+"----"+colorEnum.getValue());
}
}
}
运行结果:
金色-----金色
[ORANGE, GREY, GLODEN, BROWN, SILVERY]
橙色----橙色
灰色----灰色
金色----金色
棕色----棕色
银色----银色