enum类型的认识

1、枚举

**枚举**:全称为 enumeration, 是 JDK 1.5 中引入的新特性用于,经常用于声明一组带标识符的常数。
**枚举特点**:有限个对象,并且确定性
	例如:季节(春夏秋冬)、星期(星期一、星期二....)、性别(男、女)

2.1、自定义枚举

class Season{
  private final String NAME;
  private final String DESCRIBE;
  private Season(String NAME,String DESCRIBE){
      this.NAME=NAME;
      this.DESCRIBE=DESCRIBE;
  }
  public static final Season SPRING=new Season("春","暖");
  public static final Season SUMMER=new Season("夏","热");
  public static final Season AUTUMU=new Season("秋","冷");
  public static final Season WINTER=new Season("冬","冻");

    public String getNAME() {
        return NAME;
    }

    public String getDESCRIBE() {
        return DESCRIBE;
    }

    @Override
    public String toString() {
        return "Season{" +
                "NAME='" + NAME + '\'' +
                ", DESCRIBE='" + DESCRIBE + '\'' +
                '}';
    }
}

2.2、使用euum关键字:

enum Sex {
    man("男"),
    woman("女");
    private final String name;
    private Sex(String name){
        this.name=name;
    }
}

3、枚举可以实现接口,但不能继承类

enum 可以像一般类一样实现接口, 不可以继承另外一个类,当然,也不能继承另一个 enum 。
enum Sex implements Describe{
    man("男"){
        @Override
        public void show() {
            System.out.println("I am a body");
        }
    },
    woman("女"){
        @Override
        public void show() {
            System.out.println("I am a girl");
        }
    };
    private final String name;
    private Sex(String name){
        this.name=name;
    }

    @Override
    public void show() {
        System.out.println("描述性别的枚举类");
    }
}
interface Describe{
    void show();
}

4、使用枚举实现单例模式

## 4.1、饿汉模式:
//饿汉模式
class Singleton1{
    private static final Singleton1 instance  =new Singleton1();
    private Singleton1(){
        System.out.println("饿汉模式");
    }
    public static Singleton1 instance(){
        return instance;
    }
}
//懒汉模式
class Singleton2{
    //不能用final修饰
    //因为用final修饰的属性不能被修改
    private static Singleton2 instance=null;
    private Singleton2(){

    }
    //方法被static修饰,当该方法调用该类的属性时,属性也必须static修饰
    //因为当类加载时,用static修饰的属性、方法会保存在静态区
    public static Singleton2 instance(){
        if(instance==null){
            instance=new Singleton2();
        }
        return instance
    }
}

5、枚举常见用法

1、常量
2、switch
3、向枚举中添加新方法
4、实现接口
5、枚举集合的使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值