/*简单枚举*/
public enum Season {
/*以四季为例,各枚举值已逗号分隔,最后以分号结束,分号也可不写*/
spring,summer,autumn,winter;
}
测试:
public class Test {
public static void main(String[] args) {
Season e =Season.spring;//对枚举值得引用格式
for(Season s:Season.values()){ //静态方法values()获得枚举数组
System.out.println(s);//调用toString()方法
System.out.println(s.name());//调用toString()方法
System.out.println(s.ordinal());//得到枚举值的序列,从0 开始
}
}
}
输出:
spring
spring
0
summer
summer
1
autumn
autumn
2
winter
winter
3
/*带有构造方法的枚举*/
public enum Season {
spring(1,"A"),summer(),autumn(3,"C"),winter(4,"D");
public int i;//成员变量
public String s;//成员变量
/*构造方法默认为private,保证外部不能通过new来生成枚举类,构造方法要写在枚举值之后*/
Season(int i,String s){
this.i=i;
this.s =s;
}
/*构造方法默认为private,保证外部不能通过new来生成枚举类,构造方法要写在枚举值之后*/
Season(){
}
}
测试:
public class Test {
public static void main(String[] args) {
for (Season e : Season.values()) {
System.out.println(e.i);
System.out.println(e.s);
}
write(Season.spring);
}
/*枚举结合switch使用*/
public static void write(Season e){
switch (e) {
case spring:
System.out.println("SPRING!!!");
break;
case summer:
System.out.println("SUMMER!!!");
break;
case autumn:
System.out.println("AUTUMN!!!");
break;
case winter:
System.out.println("WINTER!!!");
break;
default:
break;
}
}
}
1
A
0
null
3
C
4
D
SPRING!!!
/*带有抽象方法的枚举类型*/
public enum Season {
spring(1,"A"){
public String fun() {
return "春天";
}
},summer(){
public String fun(){
return "夏天";
}
},autumn(3,"C"){
public String fun(){
return "秋天";
}
},winter(4,"D"){
public String fun(){
return "冬天";
}
};
public int i;
public String s;
Season(int i,String s){
this.i=i;
this.s =s;
}
Season(){
}
/*各枚举值需要分别实现此抽象方法*/
public abstract String fun();
public String fun2(){
return "===========";
}
}
public class Test {
public static void main(String[] args) {
for (Season e : Season.values()) {
System.out.println(e.fun());
System.out.println(e.fun2());
}
}
Season e = Season.valueOf("spring");//静态方法.valueOf(str);接收一个字符串,将其转换为对应的枚举类的枚举值,如果字符串不合法将抛出java.lang.IllegalArgumentException异常
System.out.println(e.fun());
}
输出:
春天
===========
夏天
===========
秋天
===========
冬天
===========
春天