0
点赞
收藏
分享

微信扫一扫

枚举

Mezereon 2021-09-24 阅读 66
Java

jdk1.5之前是自定义枚举类(就是私有化参数,私有化构造方法,然后在类中定义几个常量的本类实体)

public class  EnumTool {

    private  final String name;
    private  final Integer type;

    public EnumTool(String name, Integer type) {
        this.name = name;
        this.type = type;
    }
    
    public static final EnumTool ENUM_TOOL=new EnumTool("春",1);
    public static final EnumTool ENUM_TOOL2=new EnumTool("夏",2);
    public static final EnumTool ENUM_TOOL3=new EnumTool("秋",3);
    public static final EnumTool ENUM_TOOL4=new EnumTool("冬",4);

    public String getName() {
        return name;
    }

    public Integer getType() {
        return type;
    }

    @Override
    public String toString() {
        return "EnumTool{" +
                "name='" + name + '\'' +
                ", type=" + type +
                '}';
    }
}

jdk1.5以后提供了枚举类(只能提供get方法,并且定义的枚举类默认继承enum)

public enum  EnumTool {

    //创建枚举类对象多个对象用逗号隔开最后一个用分号
    CHUN("春",1),
    XIA("夏",2),
    QIU("秋",3),
    DONG("冬",4);

    EnumTool(String name, Integer type) {
        this.name = name;
        this.type = type;
    }

    private String name;
    private Integer type;


    public String getName() {
        return name;
    }

    public Integer getType() {
        return type;
    }
}

枚举类的方法
values():可以获取枚举类中的对象集合
valueOf(“对象名”):根据输入的对象名来获取对象(如果提供的对象名没有就报错)

枚举类实现接口
//枚举类实现接口并重写方法
//这个重写的方法是通用的

interface test{
   void show();
}

public enum  EnumTool implements test{

   CHUN("春",1),
   XIA("夏",2),
   QIU("秋",3),
   DONG("冬",4);

    EnumTool(String name, Integer type) {
       this.name = name;
       this.type = type;
   }

   private String name;
   private Integer type;


   public String getName() {
       return name;
   }

   public Integer getType() {
       return type;
   }

   @Override
   public void show() {
       System.out.println("实现的接口方法并重写");
   }
}

枚举类实现接口
//枚举类实现接口并重写方法
//为每个对象提供重写的方法

interface test{
    void show();
}

public enum  EnumTool implements test{

    CHUN("春",1){
        @Override
        public void show() {
            System.out.println(this.getName());
        }
    },
    XIA("夏",2) {
        @Override
        public void show() {
            System.out.println(this.getName());
        }
    },
    QIU("秋",3) {
        @Override
        public void show() {
            System.out.println(this.getName());
        }
    },
    DONG("冬",4) {
        @Override
        public void show() {
            System.out.println(this.getName());
        }
    };

     EnumTool(String name, Integer type) {
        this.name = name;
        this.type = type;
    }

    private String name;
    private Integer type;


    public String getName() {
        return name;
    }

    public Integer getType() {
        return type;
    }


}

举报

相关推荐

0 条评论