文章目录
枚举
枚举的概述:
世界上有些值亘古不变的
月份:1 ~ 12
星期:星期一 ~ 星期日
性别:男 女
JDK1.5之前
构造器私有
属性变为全局静态常量
JDK1.5之后
-
构造器默认私有
-
属性 必须位于 枚举元素下面
-
所有的自定义枚举 默认继承自Enum类
-
枚举类不能再继承其他的类
-
枚举类可以实现多个接口
-
枚举对象 可以根据自身的需求 灵活判断是否需要自定义接口内的方法
获取枚举对象的方法
枚举类.枚举对象
Season spring = Season.SPRING;
枚举类.valueOf()返回枚举对象
Season spring = Season.valueOf("枚举对象");
可以结合toString()使用
枚举类.values()返回所有的枚举对象数组
Season[] spring = Season.values();
可通过下标访问
枚举对象.name()返回枚举元素
枚举对象.oridinal()返回对应枚举元素下标
枚举练习
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int result = scanner.nextInt();
if (result > 0 && result < 13) {
switch (result){
case 1:
System.out.println(Month.JANUARY.toString());
break;
case 2:
System.out.println(Month.FEBRUARY.toString());
break;
case 3:
System.out.println(Month.MARCH.toString());
break;
case 4:
System.out.println(Month.APRIL.toString());
break;
case 5:
System.out.println(Month.MAY.toString());
break;
case 6:
System.out.println(Month.JUNE.toString());
break;
case 7:
System.out.println(Month.JULY.toString());
break;
case 8:
System.out.println(Month.AUGUST.toString());
break;
case 9:
System.out.println(Month.SEPTEMBER.toString());
break;
case 10:
System.out.println(Month.OCTOBER.toString());
break;
case 11:
System.out.println(Month.NOVEMBER.toString());
break;
case 12:
System.out.println(Month.DECEMBER.toString());
break;
}
}
}
}
public enum Month {
JANUARY(1, "一月是一年之计最重要的月份"),
FEBRUARY(2, "二月的春风似乎来得早了一些"),
MARCH(3, "三月的江南已经是春意盎然了"),
APRIL(4, "四月的塞北依然是冰天雪地的景象"),
MAY(5, "五月的北国风光令人心驰神往"),
JUNE(6, "时间已经把我们带入了炎炎夏日的六月份"),
JULY(7, "七月流火的日子快到了"),
AUGUST(8, "八月,是收获的季节,最容易让人联想到八月桂花香"),
SEPTEMBER(9, "每年的九月,是学生们开学的月份"),
OCTOBER(10, "国庆节是十月一日"),
NOVEMBER(11, "将近十一月,寒冷已经逼近我们了"),
DECEMBER(12, "十二月人们都在做着各种总结,以期待来年的美好");
Month(int value, String description) {
this.value = value;
this.description = description;
}
@Override
public String toString() {
return value + " ==> " + description;
}
int value;
String description;
}
输出:
5
5 ==> 五月的北国风光令人心驰神往