Java 枚举是一种特殊的类,用于表示一组固定的常量值。枚举类使用 enum
关键字来定义,通常用于表示一组相关的常量,比如季节、月份、星期天等。本文将详细介绍 Java 枚举的基本概念、使用方法以及一些高级用法。
1. 定义枚举类
枚举类使用 enum
关键字来定义,各个常量使用逗号 ,
来分割。
示例:
enum Color {
RED, GREEN, BLUE;
}
2. 使用枚举
可以像使用普通类一样来使用枚举类。
示例:
enum Color {
RED, GREEN, BLUE;
}
public class Test {
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1);
}
}
执行结果:
RED
3. 内部类中使用枚举
枚举类也可以声明在内部类中。
示例:
public class Test {
enum Color {
RED, GREEN, BLUE;
}
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1);
}
}
执行结果:
RED
4. 迭代枚举元素
可以使用 for
语句来迭代枚举元素。
示例:
enum Color {
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
for (Color myVar : Color.values()) {
System.out.println(myVar);
}
}
}
执行结果:
RED
GREEN
BLUE
5. 在 switch
中使用枚举类
枚举类常应用于 switch
语句中。
示例:
enum Color {
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
Color myVar = Color.BLUE;
switch (myVar) {
case RED:
System.out.println("红色");
break;
case GREEN:
System.out.println("绿色");
break;
case BLUE:
System.out.println("蓝色");
break;
}
}
}
执行结果:
蓝色
6. values()
, ordinal()
和 valueOf()
方法
enum
定义的枚举类默认继承了 java.lang.Enum
类,并实现了 java.lang.Serializable
和 java.lang.Comparable
两个接口。以下是 values()
, ordinal()
和 valueOf()
方法的用法:
values()
返回枚举类中所有的值。ordinal()
返回枚举常量的索引。valueOf()
返回指定字符串值的枚举常量。
示例:
enum Color {
RED, GREEN, BLUE;
}
public class Test {
public static void main(String[] args) {
Color[] arr = Color.values();
for (Color col : arr) {
System.out.println(col + " at index " + col.ordinal());
}
System.out.println(Color.valueOf("RED"));
// System.out.println(Color.valueOf("WHITE")); // 会抛出 IllegalArgumentException
}
}
执行结果:
RED at index 0
GREEN at index 1
BLUE at index 2
RED
7. 枚举类成员
枚举类可以包含变量、方法和构造函数。构造函数只能使用 private
修饰符,所以外部无法调用。
示例:
enum Color {
RED, GREEN, BLUE;
private Color() {
System.out.println("Constructor called for : " + this.toString());
}
public void colorInfo() {
System.out.println("Universal Color");
}
}
public class Test {
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1);
c1.colorInfo();
}
}
执行结果:
Constructor called for : RED
Constructor called for : GREEN
Constructor called for : BLUE
RED
Universal Color
8. 高级用法:枚举和抽象方法
枚举既可以包含具体方法,也可以包含抽象方法。如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。
示例:
enum Color {
RED {
public String getColorInfo() {
return "Color is Red";
}
},
GREEN {
public String getColorInfo() {
return "Color is Green";
}
},
BLUE {
public String getColorInfo() {
return "Color is Blue";
}
};
public abstract String getColorInfo();
}
public class Test {
public static void main(String[] args) {
for (Color color : Color.values()) {
System.out.println(color.getColorInfo());
}
}
}
执行结果:
Color is Red
Color is Green
Color is Blue
通过以上内容,我们了解了 Java 枚举的基本概念、使用方法、以及一些高级用法。希望这个教程能帮助你更好地掌握 Java 枚举的使用。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Java 枚举教程
发表评论 取消回复