如果我试图从另一个内部类“ B”访问内部类“ A”的变量,并且两个变量都属于同一外部类,则访问修饰符如何工作

时间:2019-08-25 17:01:27

标签: java

在提供的示例中,InnerClass1是带有私有变量val的私有类。但是InnerClass2的fun()函数可以打印该值,而无需InnerClass1的任何公共方法的支持。那么,为什么私有访问修饰符在这里不起作用?

public class Demo {
    private class InnerClass1 {
        private int val1 =2;
    }
    private class InnerClass2 {
        public void fun() {
            InnerClass1 clz1=new InnerClass1();
            System.out.println(clz1.val1);
        }
    }
    public static void main(String args[]) {
        Demo demo=new Demo();
        InnerClass2 clz2=demo.new InnerClass2();
        clz2.fun();     
    }

}

我希望在System.out.println(clz1.val1)行中出现编译错误,因为val1具有私有访问修饰符

0 个答案:

没有答案