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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY