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

最佳答案

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

因此,使它们的方法公开或私有对编译器来说无关紧要,除非嵌套类当然扩展了基类或实现了一个接口,因此必须将其重写方法公开。使用reflaction调用方法时,也有必要使方法公开(例如,如果其实例被序列化为JSON或XML,或者在JSP中访问了它们)。

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

关于java - 私有(private)的嵌套类(内部或静态)是否可以具有可公共(public)访问的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59227329/

10-15 03:24
查看更多