包私有类中的公共成员

sil*_*edh 6 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
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 11

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

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

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

  • "设计您的方法访问权限,以便如果有人更改了类访问权限以使其成为公共类,那么您也不希望更改方法访问权限".我认为这正是我正在做的事情,但却无法有意识地表达出来.谢谢! (2认同)