在private
中{000} private
之后,我发现它可能不需要
public class Outer {
private static class Inner { // you may drop static
private void innerMethod() {}
}
}
是否任何情况从private
中删除innerMethod()
会对封装产生影响(或使用 ,例如Outer)?想想反思
如果不,建议放弃它还是保持它的编码风格?
我会说没有和放弃但不确定。
编辑:刚才意识到我这样做的方式肯定是错误的 - 至少对于Inner
的字段 - 将这些字段声明为私有然后在外部类中使用它们 - 因为这会在字节码中生成(“合成”)访问器 - 这至少是膨胀。太棒了 - 所以现在我更感兴趣的是,在声明那些(Inner
的字段,Outer
)包中私有的方法(或@JBNizet在评论)
答案 0 :(得分:5)
答案取决于您目前如何使用内部类。
我对内部课程的理念是减轻重构的负担。我维护内部类的封装:private
方法和内部类的字段是不从外部类访问,即使它们可以。那么,内部类的要点是将其范围缩小到仅包含类。这样,如果以后内部类可以在其他地方重用,它几乎不需要工作(并且非static
内部类的工作量很少)将其移动到自己的文件中。
以上是否是您的风格将影响以下原因:放弃或保留private
方法/字段。
放弃private
的原因是:
拒绝private
的原因是:
private
的方法充当文档:外部类不应使用这些方法private
,则可以更轻松地将内部类提升为自己的文件private
被删除,public
内部类和private
内部类有两种样式:程序员可以考虑更多private
并且内部类已成为public
,则突然有权访问外部文件的所有人都可以访问内部类的私有数据鉴于上述风格,我认为反对下降的情况更为强烈。