在JAVA中,所定义的枚举类应该首先定义一个或几个枚举常量,这些枚举常量就是对枚举类的实例化。在枚举类中,虽然定义的不是 static 方法,但可以直接通过枚举常量调用方法,而不需要使用 new 关键字创建对象,这是因为枚举常量本身就是枚举类的实例。在枚举类被加载时,这些实例就已经被创建并初始化好了,它们在程序运行期间是固定存在且唯一的,所以可以直接使用枚举常量来调用其非静态方法。
所以这就是为什么要在首先定义枚举常量了,通过枚举常量我们才能访问枚举类中所定义的一些变量或方法。
如果我们定义了有参构造方法,枚举常量也应该传递相应的参数。
综上所述,每一个枚举常量就相当于枚举类的一个实例,不同的枚举常量通过传递不同的参数调同一个方法输出相同格式的结果。
示例代码
public enum HttpStatus {
//定义了一个实例
OK(200, "Success");
private int code;
private String message;
HttpStatus(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public void printInfo() {
System.out.println(code + ": " + message);
}
}
class Main {
public static void main(String[] args) {
HttpStatus.OK.printInfo(); // 输出 "200: Success"
int code = HttpStatus.OK.getCode();
System.out.println("Code: " + code);
}
}