java enums:概念疑问

Tim*_*oad 1 java enums

考虑枚举:

enum day{ MONDAY, TUESDAY};
Run Code Online (Sandbox Code Playgroud)

什么是星期一,星期二.sun文档说它们是特殊类类型枚举中的字段.但是,如果是这样的话,我们为什么要这样做:

day d=day.MONDAY  
Run Code Online (Sandbox Code Playgroud)

我的意思是我们如何将类常量赋给类变量.

Jon*_*eet 5

您将字段的分配给新字段.这与以下内容没有什么不同:

public class Constants {
    public static final String FOO = "foo";
}

public class Other {
    String x = Constants.FOO;
}
Run Code Online (Sandbox Code Playgroud)

枚举只是另一种引用类型,除了它恰好有一些库支持,枚举的唯一实例(留下一些粗俗的黑客)是枚举值引用的那些.