JAVA枚举
JAVA枚举
一,前言
了解枚举的概念,掌握枚举的用法
二,概述
枚举(Enum)是Java中一种特殊类型,是为做信息的标志和分类。
三,枚举的常用方法
- toString
最离不开的就是toString,toString方法重写后返回的其实就是枚举实例的名字:
//这是Emum类的源码,枚举的toString实现,和我们想象的完全一致
public String toString(){
return name;
}
-
valueOf
返回具有指定名称的指定枚举类型的枚举常量。
//通过valueOf得到EXTRA_LARGE对象
Size s = Enum.valueOf(Size.class, "EXTRA_LARGE");
//
System.out.println(s.name());
- ordinal
这个方法返回到是枚举常量在enum声明中的位置,位置从0开始计数,具体用法如下:
public static void main(String[] args){
//查询Enum位于第一个的SMALL
System.out.println(Size.SMALL.ordinal());
}
输出结果:
0 //第一个位置是0
- values
values方法返回的是一个包含全部枚举值的数组
public static void main(String[] args) {
Size[] sizes = Size.values();
for (Size size : sizes) {
System.out.println(size.name() + ": " + size.getDescription());
}
}
四,枚举的用法
用法一:常量
可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
例:
public enum Color {
RED, GREEN, BLANK, YELLOW
}
用法二:switch
在switch语句中使用枚举,能让我们的代码可读性更强。
例:
enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED;
public void change() {
switch (color) {
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}
用法三:自定义枚举
例:
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
// get set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!