什么时候在Java中使用package-private?

我喜欢使用任何语言的访问控制,但是我发现在Java中,我几乎从不(如果有的话)使用package-

private访问修饰符(或缺少它)。

我知道内部类可以是privateprotected,或package-private,但外类只能是package-

privatepublic。为什么外层阶级会成为package-

private事实protected?限制整个包而不是子类看到的类/方法/字段有什么好处?

回答:

package-private当我想向包外的用户(和其他类)隐藏实现细节时,我使用类和方法。

例如,如果我有一个接口和一个创建该接口实例的工厂类,则可能将实现类作为一个单独的文件,但将其标记为包私有,以便其他人不能使用它,也不会使JavaDoc混乱(如果javadoc设置为仅公开显示)。

如果密封jar文件,则package-

private方法还可以帮助限制谁可以访问这些方法。如果某个方法是公共方法或受保护方法,则子类仍然可以查看和调用该方法,即使该方法位于其他程序包中也是如此。(未密封的jar允许任何人在您的包中创建类,以便他们可以访问包私有或受保护的方法)

以上是 什么时候在Java中使用package-private? 的全部内容, 来源链接: utcz.com/qa/406942.html

回到顶部