我知道内部类可以访问外部类中的所有内容(因为它是该类的成员),但是相反呢?
外部类是否可以访问内部类中的私有变量和方法?
我看过一些文章提到内部类应该是私有的,以便它们只能由外部类访问。这对内部类的可访问性有什么影响?
在涉及内部类时,处理访问级别的最佳实践是什么?我假设封装越多越好,但这是以牺牲可访问性为代价的吗?
有效的Java(第2版)第22项:“相对于非静态的偏爱静态成员类”更详细地介绍了此主题。
简短摘要:
static
默认为。为了获得技术,Effective Java调用了这些静态成员类,而不是内部类,并使用术语嵌套类来涵盖静态和非静态版本。private
。这样,内部类只能将自身暴露给外部类。就个人而言,我倾向于实现一个内部类,只要这样做允许内部类的构造函数为private
,即当一个类只能从另一个(外部)类实例化时。任何其他封装,例如使整个内部类private
都可以使用;但是public
内部类是完全可以接受的。Java中有很多示例,例如AbstractMap.SimpleEntry
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句