包私有类中的公共成员

siv3szwd  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(378)

我想知道在包私有类中有公共成员是否可以(不被认为是坏的做法)。我倾向于补充 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
    }
}
q9rjltbz

q9rjltbz1#

我这样做只是为了可读性,因为在本例中,公共成员与没有任何访问修饰符的成员具有基本相同的可见性(即包可见性)。对吗?
那要看情况了。如果您正在重写现有方法(例如。 toString() )或者实现一个接口。
如果不希望从包外部使用该方法,请将其设为包私有。如果你对它能在任何地方使用感到高兴,那就把它公之于众。或者从另一个Angular 来考虑:设计方法访问权限,这样如果有人更改了类访问权限使其成为公共类,您就不想再更改方法访问权限了。

相关问题