目录
1.关于枚举的构造函数
先看代码
enum Color
{
RED, GREEN, BLUE;
// 构造函数
private Color()
{
System.out.println("Constructor called for : " + this.toString());
}
}
public class Test
{
// 输出
public static void main(String[] args)
{
Color c1 = Color.RED;
}
}
输出:
Constructor called for : RED
Constructor called for : GREEN
Constructor called for : BLUE
解释:
在 Java 中,当一个 enum
类被加载时,所有的枚举实例都会被创建,即使你只引用了一个枚举实例。本例中,创建c1 = Color.RED
,但Java 在加载 Color
枚举类时,仍然会创建 RED
、GREEN
和 BLUE
这三个枚举实例。每个实例在创建时,都会调用一次构造函数,因此,构造函数会被调用三次。
2.关于枚举类中的抽象函数
在 Java 枚举中,你可以定义抽象方法。每个枚举常量都必须实现这个抽象方法。这样,你可以为每个枚举常量提供不同的行为。
例:
enum Color {
// 定义一个抽象方法
public abstract String getHexCode();
//每个枚举常量都需要实现这个抽象方法
RED {
@Override
public String getHexCode() {
return "#FF0000";
}
},
GREEN {
@Override
public String getHexCode() {
return "#00FF00";
}
},
BLUE {
@Override
public String getHexCode() {
return "#0000FF";
}
};
}
public class Test {
public static void main(String[] args) {
// 调用每个枚举常量的实现
System.out.println("Red Hex Code: " + Color.RED.getHexCode());
System.out.println("Green Hex Code: " + Color.GREEN.getHexCode());
System.out.println("Blue Hex Code: " + Color.BLUE.getHexCode());
}
}