目录
枚举:包含一些定义好的特定的值,比如星期、季节
格式:public enum 枚举类名{ 枚举项1,枚举项2,...; }
- public class EnumDemo_02 {
- public static void main(String[] args) {
-
- //2.可以通过“枚举类名.枚举项名称”去访问指定的枚举项
- System.out.println(SeasonDemo_01.SPRING);
- System.out.println(SeasonDemo_01.SUMMER);
- System.out.println(SeasonDemo_01.AUTUMN);
- System.out.println(SeasonDemo_01.WINTER);
-
- //3.每一个枚举项都是该枚举类的一个对象
- SeasonDemo_01 spring = SeasonDemo_01.SPRING;//变量的类型是SeasonDemo_01类型
-
- //4.枚举也是一个类,也可以定义成员变量
-
- //5.枚举的第一行必须是枚举项,最后的分号不建议省略
-
- //6.枚举类也可以有构造器,但必须是private的;枚举项的用法: 枚举("")
-
- // 7.枚举类也可以有抽象方法,但枚举项必须重写该方法
-
- }
- }
-
- public enum SeasonDemo_01 {
- SPRING("春") {
- @Override
- public void show() {
- System.out.println(this.name);
- }
- //如果枚举类中有抽象方法,就必须在枚举项中重写
- }, SUMMER("夏") {
- @Override
- public void show() {
- System.out.println(this.name);
- }
- }, AUTUMN("秋") {
- @Override
- public void show() {
- System.out.println(this.name);
- }
- }, WINTER("冬") {
- @Override
- public void show() {
- System.out.println(this.name);
- }
- };
-
- public String name;
-
- //空参构造
- private SeasonDemo_01() {
- }
-
- //有参构造
- private SeasonDemo_01(String name) {
- this.name = name;
- }
-
- //抽象方法
- public abstract void show();
-
- }
String name() 获取枚举项名称
int ordinal() 返回枚举项在枚举类中的索引值
int compareTo( E o) 比较俩个枚举项,返回的是索引值的差值
String toString() 返回枚举项的名称
staticvalueOf(Class type, String name) 获取指定枚举类中的指定名称的枚举值
values() 获得所有的枚举项
代码示例:
- public class EnumDemo {
- public static void main(String[] args) {
- //String name() 获取枚举项名称
- Season name = Season.SPRING;
- System.out.println(name);
- System.out.println("-------------------------------");
- //int ordinal() 返回枚举项在枚举类中的索引值
- int index1 = Season.SPRING.ordinal();
- int index2 = Season.SUMMER.ordinal();
- int index3 = Season.AUTUMN.ordinal();
- int index4 = Season.WINTER.ordinal();
- System.out.println(index1);
- System.out.println(index2);
- System.out.println(index3);
- System.out.println(index4);
- System.out.println("-------------------------------");
- //int compareTo( E o) 比较俩个枚举项,返回的是索引值的差值
- int result = Season.SPRING.compareTo(Season.WINTER);
- System.out.println(result);
- System.out.println("-------------------------------");
- //String toString() 返回枚举项的名称
- String s = Season.SPRING.toString();
- System.out.println(s);
- System.out.println("-------------------------------");
- //static
valueOf(Class type, String name) - //获取指定枚举类中的指定名称的枚举值
- Season spring = Enum.valueOf(Season.class, "SPRING");
- System.out.println(spring);
- System.out.println("-------------------------------");
-
- //values() 获得所有的枚举项
- Season[] values = Season.values();
- for (Season value : values) {
- System.out.println(value);
- }
-
- }
-
- }