[学习笔记] Java枚举
枚举
在Java中,枚举是一种特殊的类,一般用于表示一组常量;
定义枚举时使用enum关键字,各个常量使用逗号分隔;
1 2 3 4 5 6 7 8 9 10 11 | enum Color //定义枚举 { RED, GREEN, BLUE; } public class Test{ public static void main(String[] args){ Color c=Color.RED; System.out.println(c); } } |
也可以在类的内部定义枚举:
public class Test{ enum Color{ RED, GREEN, BLUE; } public static void main(String[] args){ Color c=Color.BLUE; System.out.println(c); } }
每个枚举都以内部类的形式实现,且所有的枚举值都是public static final的,所以以上的枚举转换为内部类的形式为:
class Color{ public static final Color RED=new Color(); public static final Color GREEN=new Color(); public static final Color BLUE=new Color(); }
迭代枚举元素
可以使用for循环来遍历枚举元素
enum Color { RED, GREEN, BLUE; }
public class Test { public static void main(String[] args) { for (Color c : Color.values()) { System.out.println(c); } } }
枚举类与switch语句结合
enum Color { RED, GREEN, BLUE; }
public class Test { public static void main(String[] args) { Color c = Color.BLUE; switch(c) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; } } }
枚举类的常用方法
使用enum关键字定义的枚举默认继承 java.lang.Enum 类并实现 java.lang.Serializable 和j ava.lang.Comparable 接口;
枚举的常用方法:
- values()方法
返回枚举类中所有的值;
- ordinal()方法
找到每个枚举常量的索引;
- valueOf()方法
返回指定字符串的枚举常量;
枚举类成员
枚举类也可以拥有变量、方法包括构造方法,但构造方法只能使用private访问修饰符修饰,因此外部类无法调用;
枚举类的方法既可以是具体方法,也可以是抽象方法,若枚举类具有抽象方法,则枚举类的每个对象都需要对其进行实现;
enum Color{ RED{ public String getColor(){//枚举对象实现抽象方法 return "红色"; } }, GREEN{ public String getColor(){//枚举对象实现抽象方法 return "绿色"; } }, BLUE{ public String getColor(){//枚举对象实现抽象方法 return "蓝色"; } };
public abstract String getColor();//定义抽象方法 } public class Test{ public static void main(String[] args) { for (Color c:Color.values()){ System.out.print(c.getColor() + " "); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!