有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java包专用访问修饰符

如果一个类的可见性包是私有的,那么既然你首先不能访问这些方法,那么还需要将这些方法设置为具有这种可见性吗


共 (2) 个答案

  1. # 1 楼答案

    如果要实现或扩展一个类,简单回答是。如果不打算扩展或实施,则不会。无论如何,我强烈建议你仍然要让你不希望其他类看到的方法或变量是私有的。如果您希望更改类的可视性,并且从长远来看使代码更具可读性,这将节省以后的时间

  2. # 2 楼答案

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

    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();
        }
    }