当前位置: 代码迷 >> J2SE >> 内部类的为题解决方法
  详细解决方案

内部类的为题解决方法

热度:58   发布时间:2016-04-24 01:25:05.0
内部类的为题
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的,但是你仍然可以访问
------解决方案--------------------
这就是内部类的好处、
  相关解决方案