私有的嵌套类(内部或静态)是否可以使用带有公共访问权限的方法?

问题描述 投票:0回答:1

我正在为Java初学者读一本书。我看到了一个使用公共方法声明私有嵌套内部类的示例。有人可以解释一下我的意思,如何确定私有嵌套类(静态/内部)方法是私有的还是公共的?

java nested inner-classes access-modifiers static-classes
1个回答
0
投票

私有嵌套类仅在其封闭类内部可见,并且封闭类(和其他嵌套类)可以访问其私有方法。

因此,使它们的方法公开或私有无关紧要,除非嵌套类当然扩展了基类或实现了一个接口,因此必须使其覆盖的方法公开。使方法公开也可能是必要的,例如使用reflaction进行调用(例如,如果其实例被序列化为JSON或XML,或者在JSP中访问了它们)

我倾向于使用与未嵌套类相同的规则来选择公开和私有的内容。对我来说,这更清楚一些私有方法不属于其公共API的一部分,因此不应在嵌套类本身之外使用。而且,如果我曾经将嵌套类重构为顶级类,则无需进行任何更改。

© www.soinside.com 2019 - 2024. All rights reserved.