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 = "好的"; // 非法赋值,报错!!!
注意:
-
枚举类不可实例化
-
枚举的静态导入
-
枚举类里不能有主方法
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;
}
}
}
或者可以看下面这位同学的:
还有发现了一篇博客可以参考:
https://blog.csdn.net/LoveLion/article/details/110983839