java 枚举的使用示例


/*简单枚举*/
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());
}

输出:
春天
===========
夏天
===========
秋天
===========
冬天
===========
春天
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值