Java 枚举类Enum

无参构造方式创建

  • 创建
package enums.demo1;

public enum Season {
    SPRING,SUMMER,AUTUMN,WINTER;//后面没有内容时分号可以省略,一般不省略。
}

  • 使用
package enums.demo1;

public class Demo1 {
    public static void main(String[] args) {
        System.out.println(Season.SPRING);
        System.out.println(Season.SUMMER);
        System.out.println(Season.AUTUMN);
        System.out.println(Season.WINTER);
    }
}

  • 运行结果
    在这里插入图片描述

有参方式构造

无抽象方法

  • 创建
package enums.demo3;

public enum  Season {
    SPRING("春"),SUMMER("夏"),AUTUMN("秋"),WINTER("冬");
    public String name;
    Season(String name){
        this.name = name;
    }

    public String toString(){
        return this.name;
    }
}

  • 使用
package enums.demo3;

public class Demo3 {
    public static void main(String[] args) {
        Season season = Season.SPRING;
        System.out.println("Season.SPRING.name()= "+season.name());
        System.out.println("直接打印season="+season);
        System.out.println("通过名字拿到枚举对象"+ Season.valueOf("SPRING"));
        System.out.println( (Season.valueOf("SPRING") == Season.SPRING));
    }
}


  • 运行结果
    在这里插入图片描述

有抽象方法

  • 创建

package enums.demo2;

public enum Season {
    SPRING("春"){
        @Override
        public String show() {
            return this.name;
        }
    },SUMMER("夏"){
        @Override
        public String show() {
            return this.name;
        }
    },AUTUMN("秋"){
        @Override
        public String show() {
            return this.name;
        }
    },WINTER("冬"){
        @Override
        public String show() {
            return this.name;
        }
    };
    public String name;
    Season(String name){
        this.name = name;
    }
    //自己定义了一个抽象方法,每个枚举类可以有自己的独特实现,当然你也可以定义普通方法
    public abstract String show();
}

  • 使用
package enums.demo2;

public class Demo2 {
    public static void main(String[] args) {
        System.out.println("打印Season.SPRING");
        Season season = Season.SPRING;
        //打印枚举对象
        System.out.println(season);
        System.out.println("调用枚举对象Season.SPRING的show方法");
        //调用枚举对象的方法
        System.out.println(season.show());
        //打印每个枚举的序号
        System.out.println("Season.SPRING 序号:"+Season.SPRING.ordinal());
        System.out.println("Season.SUMMER 序号:"+Season.SUMMER.ordinal());
        System.out.println("Season.AUTUMN 序号:"+season.AUTUMN.ordinal());
        System.out.println("Season.WINTER 序号:"+season.WINTER.ordinal());
        //打印枚举的compareTo
        System.out.println("SPRING compareTo WINTER = "+(Season.SPRING.compareTo(Season.WINTER)));
        //通过名字字符串拿到枚举对象
        Season season1 = Enum.valueOf(Season.class,"WINTER");
        System.out.println("拿到的枚举对象:"+season1);
        System.out.println((Season.WINTER == season1));
        //遍历所有的枚举项
        System.out.println("遍历所有枚举项");
        for (Season season2 : Season.values()){
            System.out.println(season2);
        }
    }
}


  • 运行结果
    在这里插入图片描述
posted @ 2021-06-27 16:14  HumorChen99  阅读(1)  评论(0编辑  收藏  举报  来源