先说一下枚举的一些相关概念。
枚举是JDK1.5引入的。所有的枚举类型隐性地继承自 java.lang.Enum。枚举实质上还是类!还是会被编译成字节码文件而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用它们。
例如:
enum Season {
SPRING, SUMMER, AUTUMN, WINDER
}
enum Week {
星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日
}
也可以通过foreach循环来遍历
for (Week k : Week.values()) {
System.out.println(k);
}
如果出现中文的枚举实例,最好这样写,可以避免编码问题。
enum Aera{
CD("成都"),CQ("重庆");
public String name;
Aera(String name){
this.name = name;
}
@Override
public String toString(){
return name;
}
}
其中的构造方法只能是默认不写或则为private的。
调用的时候直接:String str = Aera.CQ.toString();
枚举里面toString方法 从哪里来?从Object类来,那枚举和Object有关系吗?
Enum类是Object的子类
java.lang.Object
java.lang.Enum<E>
这是所有 Java 语言枚举类型的公共基本类。