包私有类中的公共成员

时间:2013-10-03 14:08:09

标签: java oop coding-style

我想知道将公共成员包装在私有包中是否可行(不被视为不良做法)。我倾向于将public关键字添加到我的默认可见性类的成员中,以表明这些成员是类API的一部分。

我这样做只是为了提高可读性,因为在这种情况下,公共成员与没有任何访问修饰符(即包可见性)的成员具有基本相同的可见性。这是对的吗?

示例:

class ModuleImplementationClass {
    private int fieldA;
    private String fieldB;

    private void someClassInternalMethod() {
         // impl
    }

    public int doSth() {
        // method that will be called by other classes in the package
    }
}

1 个答案:

答案 0 :(得分:10)

  

我这样做只是为了提高可读性,因为在这种情况下,公共成员与没有任何访问修饰符(即包可见性)的成员具有基本相同的可见性。这是对的吗?

那取决于。如果您要覆盖现有方法(例如toString())或实现接口,则不会。

如果您不希望从包外部使用该方法,请将其设为私有包。如果您对从任何地方使用它感到高兴,请将其公之于众。或者考虑它的另一种方式:设计你的方法访问权限,这样如果有人改变了访问权限以使其成为公共类,你也不希望改变方法访问权。