java枚举

1什么是枚举
先说什么是枚举之前,先了解一下单例模式,单例模式是什么呢,就是一个类只有一个实例对象。意味着你在任何时候要获得一个单例模式的类,所获得的对象都是相同的,那么单例模式如何实现呢?
单例模式的实现思想是这样的,你把一个类的构造方法声明为私有,然后在引用工厂模式,也就是通过类方法的形式把类的实例传递出去。
public class Single{
    private Single(){

    }
    private static Single single;
    public static Single getSingle(){
        if(single==null){
            single=new Single();
        }
        return single;
    }
}
好了这就是单例模式,然而并没有什么卵用。那么什么是枚举呢,枚举就是一个只有有限个实例。例如,一个星期只有7天。
public class Week{
    public static Week MON=new Week();
    public static Week TUE=new Week();
    public static Week WED=new Week();
    private Week(){

    }
}
枚举类的变形
上面的那个枚举类是最简单的,下面再介绍两种变形。
有参构造函数
public class Week2{
    public static Week2 MON=new Week2("星期一");
    public static Week2 TUE=new Week2("星期二");
    public static Week2 WED=new Week2("星期三");
    private String str;
    private Week2(String str){
        this.str=str;
    }
}
抽象方法,匿名内部类
这里public abstract class Week3{
    public static Week3 MON=new Week3("星期一"){
        public void show(){
            System.out.println(str);
        }
    };
    public static Week3 TUE=new Week3("星期二"){
        public void show(){
            System.out.println(str);
        }
    };
    public static Week3 WED=new Week3("星期三"){
        public void show(){
            System.out.println(str);
        }
    };
    String str;
    private Week3(String str){
        this.str=str;
    }
    public abstract void show();
}
枚举的官方关键字enum
通过enum将一个java类声明为枚举类型
以下为enum对应的枚举的三种实现
public enum EnuWeek {
    MON,TUE,WED;
}
public enum EnumWeek2 {
    MON("星期一"),TUE("星期二"),WED("星期三");
    private String str;
    private EnumWeek2(String str){
        this.str=str;
    }
}
public enum EnumWeek3 {
    MON(){
        public void show(){

        }
    },
    TUE(){
        public void show(){

        }
    },
    WED(){
        public void show(){

        }
    };
    public abstract void show();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值