2

最近我经常使用枚举。所以我想知道...

私有枚举构造函数和没有任何可见性修饰符(包私有)的枚举构造函数之间有什么区别吗?

4

2 回答 2

4

枚举的构造函数是隐式的private,就像接口和注释的方法是隐式的public abstract。对于类成员,默认值是本地包。

顺便说一句,枚举类是隐式的final,嵌套的枚举类是隐式的static

较旧的构造往往允许您添加隐式修饰符,但较新的构造不允许您说。例如,枚举是最终的,但您不能添加final到枚举中。

于 2013-09-09T18:52:38.080 回答
2

根据java文档

枚举类型的构造函数必须是包私有或私有访问。

但根据JLS

如果没有为枚举类型的构造函数指定访问修饰符,则构造函数是私有的。

所以 package-private 和 private 之间没有区别。

于 2013-09-09T18:59:30.860 回答