包私有类中的公共成员

我想知道公共成员是否在包私人课程中是否可行(不被视为不良做法)。 我倾向于将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 } } 

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

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

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