2022-08-01 第4组 蒋萍 枚举类以及用枚举类实现单例模式

枚举enum

为什么要枚举??

避免一些不合理的输入类型或值,就是解决一些非法赋值问题。

好处:

1、类型安全

2、易赋值

3、代码清晰

1、定义

指由一组固定的常量组成的类型,就一个特殊的

2、使用

[Modifier] enum enumName { 
    enumContantName;
} 

比如:

// 性别枚举
public enum Genders{
    Male,Female;
}
public class Student{
    public Genders sex; // 枚举类型变量
}
// 调用
Student stu = new Student();
stu.sex = Genders.Male;
// 只能给sex赋值为Geenders类型,sex后点出来的只能是Male或者Female

stu.sex = "好的";  // 非法赋值,报错!!!

注意:

  • 枚举类不可实例化
    image

  • 枚举的静态导入
    image

  • 枚举类里不能有主方法

3、用枚举类实现单例模式

为什么要用枚举类去实现 ??

线程安全 !!!

/**
 * 用枚举类实现单例模式,必须掌握
 */

public class Singleton {

    // 构造器私有
    private Singleton(){}

    // 声明一个枚举类,内部类
    private enum SingletonEnum{

        INSTANT;
        // 就一个实例
        private final Singleton instant;

        // 造实例
        SingletonEnum(){
            instant = new Singleton();
        }

        // 提供公有获取实例的静态方法
        public static Singleton getInstance(){
            return SingletonEnum.INSTANT.instant;
        }  
    }
}

或者可以看下面这位同学的:
image

image

还有发现了一篇博客可以参考:
https://blog.csdn.net/LoveLion/article/details/110983839

posted @ 2022-08-01 22:55  来日可追  阅读(19)  评论(0编辑  收藏  举报