繁体   English   中英

包私有类中的公共成员

[英]Public members in package private class

我想知道在包私有类中拥有公共成员是否可以(不被认为是不好的做法)。 我倾向于为我的默认可见性类的成员添加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() )或实现接口,则不会。

如果您不希望从包外部使用该方法,请将其设为包私有。 如果您愿意在任何地方使用它,请将其公开。 或者另一种思考方式:设计您的方法访问权限,以便如果有人仅更改访问权限以使其成为公共类,您也不想更改方法访问权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM