我想知道将公共成员包装在私有包中是否可行(不被视为不良做法)。我倾向于将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
}
}
答案 0 :(得分:10)
我这样做只是为了提高可读性,因为在这种情况下,公共成员与没有任何访问修饰符(即包可见性)的成员具有基本相同的可见性。这是对的吗?
那取决于。如果您要覆盖现有方法(例如toString()
)或实现接口,则不会。
如果您不希望从包外部使用该方法,请将其设为私有包。如果您对从任何地方使用它感到高兴,请将其公之于众。或者考虑它的另一种方式:设计你的方法访问权限,这样如果有人改变了类访问权限以使其成为公共类,你也不希望改变方法访问权。