如果您有一个枚举,例如
enum Coffee {
BIG,
SMALL
}
以及一个具有像枚举这样的实例变量的类:
public class MyClass {
private Coffee coffee;
// Constructor etc.
}
为什么可以在构造函数中说例如coffee.BIG
?
不明白你可以参考一下吗?枚举作为实例变量是否初始化为除null
?这是 SCJP 书中第一章的自测题#4。我试图缩短代码和问题。
In
enum Coffee {
BIG,
SMALL
}
大或小是public static final
Coffee 类的字段,并且像所有静态字段一样,它们可以通过类名访问,例如
Coffee b1 = Coffee.BIG;
或者通过与类相同类型的引用,例如
Coffee s2 = b1.SMALL;
Coffee s3 = Coffee.BIG.SMALL; //BIG is reference of type Coffee so it is OK (but looks strange)
但让我们记住这一点我们应该避免通过引用访问静态成员。这会造成混乱,因为我们并没有真正访问instance但成员class(例如,不存在多态行为)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)