Skip to content
在Java中,常量的一种常见用途是给一系列整数指定有意义的名称,前面使用位组时您这样做过:
class ConnectionAttributes {


这些常量很有用——让包含它们的语句提供了额外的信息。请比较下面两条等效的语句:
setConnectionType(1);
setConnectionType(ConnectionAttributes.W);
对于程序员来说,第二条语句要更容易理解得多。

Java提供了被称为枚举的数据类型,可用于实现上述目标,但优于在类中使用常量。为了定义枚举,可使用关键字enum而不是class,并将值用逗号分隔。

下面是一个名为Compass的简单枚举,它包含8个指南针方向:
public enum compass {


这些值都是static和final的,就像常量一样,与类常量一样,它们可出现在语句、方法调用和其他代码中。下面是一个使用这个枚举的程序 :
 

这个应用程序将示例变量current设置为枚举Compass中的值WEST,再显示这个变量的值,结果为文本WEST.

相比于使用类变量,使用枚举的优点是,如果您使用了非法值,编译器将能够发现这种错误。调用方法setDirection(Compass)时,只能向它传递枚举Compass包含的值。
相反,对于接受ConnectionAttribues参数的方法,调用它时可传入任何整数值。
枚举还有其他优点,它就像类那样,可以包含方法和变量。
每当需要一组固定的常量时,都可在枚举中定义它们。

本站总访问 — 次