Java中的枚举

1.1 认识枚举

枚举是一种特殊的类,它的格式是:

java 复制代码
public enum 枚举类名{
    枚举项1,枚举项2,枚举项3;
}

其实枚举项就表示枚举类的对象,只是这些对象在定义枚举类时就预先写好了,以后就只能用这几个固定的对象。

定义一个枚举类,在枚举类中定义三个枚举项X, Y, Z

java 复制代码
public enum A{
    X,Y,Z;
}

想要获取枚举类中的枚举项,只需要用类名调用就可以了

java 复制代码
public class Test{
    public static void main(String[] args){
        //获取枚举A类的,枚举项
        A a1 = A.X;
        A a2 = A.Y;
        A a3 = A.Z;
    }
}

下面来验证一下枚举项实际上是枚举类的对象,可以通过反编译来验证 ,命令行命令:

bash 复制代码
javap A.class

可以看到,枚举类A是用class定义的,说明枚举确实是一个类,而且X,Y,Z都是A类的对象;而且每一个枚举项都是被public static final修饰,所以被可以类名调用,而且不能更改。

小demo:

既然枚举是一个类的话,我们能不能在枚举类中定义构造器、成员变量、成员方法呢?答案是可以的 。但是一般不写,如果你真要这么干的话,到不如直接写普通类来的直接。

1.2 枚举的应用场景

枚举一般表示一组信息,然后作为参数进行传输。

来看一个案例。比如我们现在有这么一个应用,用户进入应用时,需要让用户选择是女生、还是男生,然后系统会根据用户选择的是男生,还是女生推荐不同的信息给用户观看。

常规写法:

枚举写法:

最终再总结一下枚举的应用场景:枚举一般表示几个固定的值,然后作为参数进行传输

相关推荐
Filwaod7 小时前
Java面试现场:从Redis缓存到分布式事务,水货程序员李四的‘表演‘
java·jvm·spring boot·redis·mysql·面试·多线程
铁皮哥7 小时前
【后端开发】@Resource 和 @Autowired 到底有什么区别?为什么现在更推荐构造方法注入?
java·ide·spring boot·tomcat·log4j·idea·intellij idea
众创岛7 小时前
web自动化中的日志模块
java·前端·自动化
焦糖玛奇朵婷7 小时前
终于搞清楚了,扭蛋机小程序这么厉害❗
java·服务器·前端·程序人生·小程序
用户298698530147 小时前
Java 文档处理:在 Word 中插入分页符与分节符
java·后端
APIshop7 小时前
Java 调用阿里巴巴商品详情接口实战指南:完整流程与代码实现
java·开发语言
贫民窟的勇敢爷们7 小时前
Spring Security OAuth2.0 技术详解:分布式系统安全认证的标准方案
java·安全·spring
无限进步_7 小时前
【C++】红黑树完全解析:从概念到插入与平衡维护
java·c语言·开发语言·数据结构·c++·后端·算法
非凡ghost7 小时前
视频下载神器:直播回放、视频链接一键抓取,还能自动监听!
java·前端·javascript·音视频
IT当时语_青山师__JAVA技术栈8 小时前
Java反射深度解析:运行时探查的艺术、代价与工程实践
java·后端·面试