- 由于枚举类型的实例是常量,因此按照命名惯例他们都用大写字母表示。(如果在一个名字中间有多个单词,用下划线将他们隔开)。
特性
- 枚举中所有的成员,必须出现在枚举对象的下面。
- 如果枚举类中有一个成员,那么枚举对象最后不能省略分号。
- 枚举中的构造方法必须私有。(也分为有参构造和无参构造)
- 抽象方法的意义:可以用来描述某个枚举成员的信息,提高程序的可读性。
- 可以在switch语句内使用。
枚举中常用的方法
- String name() 返回枚举常量的名称,与其枚举声明中声明完全相同
- int ordinal() 用来表示某个特定的enum常量的声明顺序。从0开始
- static values():按照enum常量的声明顺序,产生有这些常量值构成的数组。
枚举类型的使用
public enum Weeked {
MONDYA{
@Override
public void desc() {
System.out.println("今天星期一");
}
},
TUESDAY("星期二"){
@Override
public void desc() {
System.out.println("今天星期二");
}
},
WEDNESDAY("星期三"){
@Override
public void desc() {
System.out.println("今天星期三");
}
},
THURSDAY{
@Override
public void desc() {
System.out.println("今天星期四");
}
},
FRIDAY("星期五",505){
@Override
public void desc() {
System.out.println("今天星期五");
}
},
SATURDAY("星期六", 606){
@Override
public void desc() {
System.out.println("今天星期六");
}
},
SUNDAY(){
@Override
public void desc() {
System.out.println("今天星期日");
}
};
private String weekedName;
private Integer order;
private Weeked() {
System.out.println(this.toString()+"采用了无参构造");
}
private Weeked(String weekedName) {
this.weekedName = weekedName;
System.out.println(this.toString()+"采用了一个参数构造");
}
private Weeked(String weekedName, Integer order) {
this.weekedName = weekedName;
this.order = order;
System.out.println(this.toString()+"采用了两个参数构造");
}
public String getWeekedName() {
return weekedName;
}
public Integer getOrder() {
return order;
}
public abstract void desc();
}