Java enum枚举类型的用法(附带实例)
Java 中的枚举是一种特殊的类,它用来表示一个常量集合。
日常生活中我们经常会遇到枚举类型,比如性别分为男女、方向分为东南西北、季节分为春夏秋冬、一个星期分为 7 天等,这些都可以用一个固定的常量集合来表示,也就是用枚举类型来表示。
虽然枚举是一种特殊的类,但它不使用 class 关键字来定义,而是通过 enum 关键字来定义。语法如下:
看一个实例,给一年四季定义一个枚举,这个枚举的名称为 Season,它包含的枚举成员为春夏秋冬(SPRING, SUMMER, AUTUMN, WINTER)。
枚举很多时候都是与 switch 语句一起使用的,将枚举的成员作为判断条件以进行不同的处理,下面实例中使用 switch 语句实现对 Season 枚举的条件分支判断。
在了解枚举后是不是觉得枚举与普通的常量很相似,比如下面代码中的 Season 枚举:
日常生活中我们经常会遇到枚举类型,比如性别分为男女、方向分为东南西北、季节分为春夏秋冬、一个星期分为 7 天等,这些都可以用一个固定的常量集合来表示,也就是用枚举类型来表示。
虽然枚举是一种特殊的类,但它不使用 class 关键字来定义,而是通过 enum 关键字来定义。语法如下:
访问修饰符 enum 枚举名 {
枚举成员;
}
访问修饰符后接 enum 关键字再接枚举名,大括号里是枚举的所有常量成员,成员之间通过逗号分隔。看一个实例,给一年四季定义一个枚举,这个枚举的名称为 Season,它包含的枚举成员为春夏秋冬(SPRING, SUMMER, AUTUMN, WINTER)。
public enum Season {
SPRING, SUMMER, AUTUMN, WINTER;
}
定义枚举后可以通过“枚举名.成员”的方式对枚举进行访问,比如 Season.SPRING。枚举很多时候都是与 switch 语句一起使用的,将枚举的成员作为判断条件以进行不同的处理,下面实例中使用 switch 语句实现对 Season 枚举的条件分支判断。
public class EnumTest4 {
public static void main(String[] args) {
printSeason(Season.SPRING);
printSeason(Season.SUMMER);
printSeason(Season.AUTUMN);
printSeason(Season.WINTER);
}
static void printSeason(Season s) {
switch (s) {
case SPRING:
System.out.println("春天");
break;
case SUMMER:
System.out.println("夏天");
break;
case AUTUMN:
System.out.println("秋天");
break;
case WINTER:
System.out.println("冬天");
break;
}
}
}
输出结果为:
春天
夏天
秋天
冬天
在了解枚举后是不是觉得枚举与普通的常量很相似,比如下面代码中的 Season 枚举:
public enum Season {
SPRING, SUMMER, AUTUMN, WINTER;
}
可以按照下面代码中的 SeasonConstant 类定义四个常量:
public class SeasonConstant {
public static final int SPRING = 0;
public static final int SUMMER = 1;
public static final int AUTUMN = 2;
public static final int WINTER = 3;
}
效果和使用是不是很相似呢?确实,两种方式的效果差不多,只不过枚举具备更强的约束,从而保证使用更加安全。比较枚举成员时能限制只与同类枚举成员进行比较,而常量没有这种限制。
ICP备案:
公安联网备案: