打包私有访问修饰符

时间:2017-07-10 18:10:16

标签: java

如果某个类的可见性包是私有的,那么是否还要设置方法以具有该可见性,因为您无法首先访问这些方法?

2 个答案:

答案 0 :(得分:1)

例如,包私有类可以实现一些接口并在其包之外使用。在这种情况下,实现的方法应该是public。您也可以通过private访问修饰符限制在同一个包中使用某些成员。

package pkg1;

public interface SomeInterface {
    void m();

    public static SomeInterface getImplementation() {
        return new A();
    }
}

class A implements SomeInterface {
    @Override
    public void m() {}

    public void m2() {} // this one cannot be called from other packages

    private void m3() {} // this one might be used only in class A
}

package pkg2;

import pkg1.SomeInterface;

public class Main {
    public static void main(String[] args) {
        SomeInterface implementation = SomeInterface.getImplementation();
        implementation.m();
    }
}

答案 1 :(得分:0)

简单回答是,如果要实现或扩展一个类。不,如果它不会被扩展或实施。我强烈建议你仍然制作你不希望其他类看到私有的方法或变量。如果您希望更改类的可靠性,以及从长远来看使代码更具可读性,这将节省时间。