内部类的为题解决方法

内部类的为题Java codeclass ca{private ca(){System.out.println(1)}class inner{private inner(){new

内部类的为题

Java code
class ca{    private ca(){        System.out.println("1");    }        class inner{        private inner(){            new ca();        }    }        class inner2{        public inner2(){            new inner();        }    }}class ae{    public ae(){                new ca() // 不可以        System.out.println("2");    }      }


为什么 inner2 可以调用 inner 的 private 构造器。。。
ae 却不能 不能调用 ca类的private 构造器。。。。

[解决办法]
这个基本没为什么吧,主要以类来划分独立性,类内类外,既然内部类属于该已划分的范畴,就没必要再划分来限制彼此内部类的访问性了吧。
[解决办法]
因为ae不是ca的内部类。

你看看花括号,没有把ae扩在ca内,而是让ae和ca变成了两个独立的类。
[解决办法]
inner2 是ca的一个内部成员,就像你在一个类里面定义了一个private int abc;一样,这个abc是private的,但是你仍然可以访问
[解决办法]
这就是内部类的好处、