Java - private和package-private枚举构造函数之间的区别

时间:2013-09-09 18:49:18

标签: java constructor enums private package-private

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

私有Enum构造函数和枚举构造函数与任何可见性修饰符(package-private)之间是否有任何区别?

2 个答案:

答案 0 :(得分:3)

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

BTW枚举类隐式final,嵌套枚举类隐式static

较旧的构造倾向于允许您添加隐式修饰符,但较新的构造不允许您说。例如枚举是最终的,但您无法将final添加到枚举。

答案 1 :(得分:2)

根据java docs

  

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

但正在加入JLS

  

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

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