【发布时间】:2008-10-28 13:10:45
【问题描述】:
我认为在这种情况下不需要声明公共构造函数,因为无论如何在包之外都无法访问该类。但是当类只有包私有构造函数时是否有一些隐藏的影响?
【问题讨论】:
-
一个相关的问题供你思考。公共抽象类应该有公共或受保护的构造函数吗?
标签: java coding-style
我认为在这种情况下不需要声明公共构造函数,因为无论如何在包之外都无法访问该类。但是当类只有包私有构造函数时是否有一些隐藏的影响?
【问题讨论】:
标签: java coding-style
不,您不必声明公共构造函数;包私有构造函数将同样可用。包外的类无论如何都无法使用构造函数,因为它们看不到该类。
【讨论】:
如果您的类是包私有的,那么修饰符关键字public 指示的访问级别与构造函数的默认包私有访问级别是等效的。
但是,如果在开发过程中更改了类的可见性,您可以指明您希望该方法具有的行为。当您打开一些以前是内部的 API 时,可能会发生这种情况。在这种情况下,将构造函数声明为包私有看起来更保守,因为您不会同时打开所有门。
【讨论】: