枚举类的使用

枚举类的使用

package _366After.src.javeTeacher.enumeration_class.enumeration_class_new;

/*
枚举类
1- 枚举类的理解:类的对象,有限/确定

2- 常量(不可变的量)----> 建议枚举类

3-使用enum枚举类,
  定义的枚举类默认继承与-java.lang. enum

4- 如何定义枚举类:   1-使用enum关键字来自定义枚举类

5- enum常用方法:1- values -需要便利
               2- valueOf  -(来鉴定也没有XX这个东西,没有就报.IllegalArgumentException)
               3- toString


6-调用接口
     1-让枚举类--继承接口
     2-在枚举类的对象的地方,重写接口方法



*7-枚举类在实际中使用

比如:当状态只要有两种状态---就用Boolen值   --> if(true)\false

比如:当状态有三种或者三种以上的状态,我们就使用枚举类
 -->   switch(枚举类){
               case 枚举类对象;
                   XXXXX
               case 枚举类对象;
                   XXXXX
              case 枚举类对象;
                   XXXXX

 }



 */
public class Enumeration_class_new {
    public static void main(String[] args) {
        //测试枚举类
        Season1 spring = Season1.SPRING;
        System.out.println(spring);
        System.out.println("查看父类= " + Season1.class.getSuperclass());

        System.out.println("——————————————————————————————————————————————————————-");

        //values();   ---便利枚举类的内容
        Season1[] values = Season1.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println("values();便利枚举类的内容= " + values[i]);
        }
        System.out.println("——————————————————————————————————————————————————————-");

        //values();   ---便利枚举类的状态
        Thread.State[] values1 = Thread.State.values();
        for (int i = 0; i < values1.length; i++) {
            System.out.println("values();当前状态= " + values1[i]);
        }

        //valueOf(String  objName):返回枚举类中对象名是obj的对象
        //如果没有objName的枚举类对象,抛出异常:.IllegalArgumentException
        Season1 summer = Season1.valueOf("SUMMER");
        //Season1 summer1 = Season1.valueOf("SUMMER1");---错误的演示
        System.out.println("valueOf,查找: " + summer);
        // System.out.println("valueOf,查找: " + summer1);---错误的演示

        System.out.println("-________________________________________________");

        //测试接口
        spring.show();


    }
}

//接口
interface Info {
    void show();
}

//使用enum (按照顺序--1-4)
enum Season1 implements Info {
    //3-提供当前枚举类的对象 ,多个对象用逗号隔开,末尾用封号;
    SPRING("chun", "chun") {
        @Override
        public void show() {
            System.out.println("xixiixi");
        }
    },

    SUMMER("SUMMER", "SUMMER") {
        @Override
        public void show() {
            System.out.println("hahhahah");
        }
    },
    AUTUMN("AUTUMN", "AUTUMN") {
        @Override
        public void show() {
            System.out.println("wuuwuwuwuw");
        }
    },
    WINTER(" WINTER", " WINTER") {
        @Override
        public void show() {
            System.out.println("yuyuyuuyu");
        }
    };


    //1-声明Season对象的属性:private final修饰
    private final String seasonName;
    private final String seasonDesc;

    //2-私有化--构造器
    private Season1(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    //4- 获取枚举类对象的属性
    public String getSeason1Name() {
        return seasonName;
    }

    public String getSeason1Desc() {
        return seasonDesc;
    }
}

 

posted on 2022-06-08 11:37  陈嘻嘻-  阅读(62)  评论(0编辑  收藏  举报

导航