枚举类型的构造方法_Java语言程

6.6.4 枚举类型的构造方法

枚举类型既然是类,那么就可以有构造方法。只不过只能是私有的(private),不能有公有的(public)构造方法,这是为了避免直接对枚举类型实例化。

【例6-11】 枚举类型的构造方法举例。

Java 枚举可以泛型吗 java枚举类构造方法_构造方法

程序运行结果:

国内核心期刊的系数:1.2

思考与分析:(1)当创建枚举类型的常量对象时,运行系统会调用相应的构造方法。如果没有显示定义构造方法,编译系统会为枚举类型提供一个默认的不带形参的构造方法。

(2)枚举常量可以包含一个实参列表,如SCI(2.2),EI(1.5),DomesticCoreJournal (1.2);。在枚举类型中,如果定义带实参的枚举常量对象,那么就应该有相应的带形参的构造方法,否则会引发编译错误。当创建带实参的枚举常量对象时,运行系统会将各实参传递给相应构造方法对应的形参。

(3)一般来说,不能使用new实例化一个枚举类型。

模仿例6-11:编程实现LARGE(“大号”),MEDIUM(“中号”),SMALL(“小号”)实参列表的枚举常量构造方法。(www.guayunfan.com)

【例6-12】 枚举类型实现接口的举例

Java 枚举可以泛型吗 java枚举类构造方法_实例化_02

程序运行结果:

LARGE:大号

MEDIUM:中号

SMALL:小号

思考与分析:(1)枚举类型实现了接口IDescription。用统一的调用接口,打印枚举常量各自的字符串。

(2)枚举类型中可以定义一些方法,甚至可以为每一个枚举常量定义方法。每个枚举常量{}之间是类体,并在类体中实现了接口的抽象方法。

模仿例6-12:使用枚举类型实现接口,改写例6-10,完成同样的功能。