当类被声明为包私有时,我们是否应该声明一个公共构造函数?

2022-09-02 09:36:02

我认为在这种情况下,没有必要声明公共构造函数,因为无论如何,该类都无法在包外部访问。但是,当类只有包私有构造函数时,是否存在一些隐藏的影响?


答案 1

不,您不必声明公共构造函数;包私有构造函数将同样可用。包外部的类无论如何都无法使用构造函数,因为它们看不到该类。


答案 2

如果您的类是包私有类,则由修饰符关键字指示的访问级别以及构造函数的默认包专用访问级别是等效的。public

但是,您可以指示您希望方法具有的行为,以防在开发过程中更改类可见性。当您打开一些以前是内部的 API 时,可能会发生这种情况。在这种情况下,将构造函数声明为包私有看起来更保守,因为您不会同时打开所有门。