枚举
枚举是 JDK 1.5 中新增的数据类型,取值范围有限,是可以枚举出来的,比如:一周有 7 天,性别有 男、女等。虽然定义类也可以实现,但枚举更简洁、方便。
枚举的定义
没有枚举类型时,定义常量常见的方式如下:
package demo03;
/**
* jdk 1.5 以前,定义常量的方式
*/
public class ColorConstants {
public static final int RED = 1;
public static final int GREEN = 2;
public static final int BLUE = 3;
}
枚举类型:
package demo03;
/**
* 颜色枚举
* 命名规范: 以 Enum 结尾
*/
public enum ColorEnum {
RED,
GREEN,
BLUE
}
深入了解枚举类型
操作枚举类型成员的方法
方法名称 | 具体含义 | 使用方法 |
---|---|---|
values() | 将枚举类型成员以数组的形式返回 | 枚举类型名称.values() |
valueOf() | 将普通字符串转换为枚举实例 | 枚举类型名称.valueOf(“abc”) |
compareTo() | 比较两个枚举对象在定义时的顺序 | 枚举对象.compareTo() |
name() | 获取枚举类型的变量名 | 枚举对象.name() |
ordinal() | 获取枚举类型的变量顺序 | 枚举对象.ordinal() |
ColorEnum02.java:
package demo03;
public enum ColorEnum02 {
RED,
GREEN,
BLUE
}
ColorMain.java:
package demo03;
public class ColorMain {
public static void main(String[] args) {
// 输出 RED 的 "名称"
System.out.println(ColorEnum02.RED.name());
// 输出 RED 的 "顺序"
System.out.println(ColorEnum02.RED.ordinal());
// 依次和 GREEN 比较在 ColorEnum 中枚举的顺序
for (ColorEnum02 item : ColorEnum02.values()
) {
System.out.println(item.compareTo(ColorEnum02.valueOf("GREEN")));
}
}
}
输出结果:
RED
0
-1
0
1
枚举类型中的构造方法
- 在枚举类型中,是可以添加
构造方法
,但是规定这个构造方法必须为private
修饰符(默认)
ColorEnum.java:
package demo03;
/**
* 颜色枚举
* 命名规范: 以 Enum 结尾
*/
public enum ColorEnum {
RED("红色", 1),
GREEN("绿色", 2),
BLUE("蓝色", 3);
private String name;
private int index;
/**
* @param name 颜色名称
* @param index 索引
* 默认修饰符: private (唯一)
*/
ColorEnum(String name, int index) {
this.name = name;
this.index = index;
}
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;
}
}
ColorMain.java:
package demo03;
public class ColorMain {
public static void main(String[] args) {
System.out.println(ColorEnum.RED.getName());
System.out.println(ColorEnum.RED.getIndex());
}
}
输出结果:
红色
1
来源:CSDN
作者:鱼丸丶粗面
链接:https://blog.csdn.net/qq_34745941/article/details/104174528