内部类的为题解决方法
内部类的为题
为什么 inner2 可以调用 inner 的 private 构造器。。。
ae 却不能 不能调用 ca类的private 构造器。。。。
------解决方案--------------------
这个基本没为什么吧,主要以类来划分独立性,类内类外,既然内部类属于该已划分的范畴,就没必要再划分来限制彼此内部类的访问性了吧。
------解决方案--------------------
因为ae不是ca的内部类。
你看看花括号,没有把ae扩在ca内,而是让ae和ca变成了两个独立的类。
------解决方案--------------------
inner2 是ca的一个内部成员,就像你在一个类里面定义了一个private int abc;一样,这个abc是private的,但是你仍然可以访问
------解决方案--------------------
这就是内部类的好处、
- 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的,但是你仍然可以访问
------解决方案--------------------
这就是内部类的好处、