我正在读一本针对 Java 初学者的书。我看到一个例子,私有(private)嵌套内部类是用公共(public)方法声明的。有人可以解释一下它的含义以及我如何决定私有(private)嵌套类(静态/内部)方法应该是私有(private)的还是公共(public)的?
最佳答案
私有(private)嵌套类仅在其封闭类内部可见,并且封闭类(和其他嵌套类)可以访问其私有(private)方法。
因此,将它们的方法设为公共(public)或私有(private)对编译器来说并不重要,当然,除非嵌套类扩展基类或实现接口(interface),因此必须将其重写方法公开。使方法公开也可能是使用反射调用它们的必要条件(例如,如果其实例序列化为 JSON 或 XML,或者如果在 JSP 中访问它们)。
我倾向于使用与未嵌套类相同的规则来选择公开和私有(private)的内容。这让(对我来说)更清楚的是,一些私有(private)方法不是其公共(public) API 的一部分,因此不应该在嵌套类本身之外使用。如果我将嵌套类重构为顶级类,我不需要更改任何内容。
关于java - 私有(private)的嵌套类(内部或静态)是否可以具有可公共(public)访问的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59227329/