内部类是否出包就不能访问了
package test;
public class Outer {
private int age;
private String name;
class Inner {
public void show() {
System.out.println("show method");
}
}
}
在test包下的类都可以获取Outer.inner
但是只要是出了test包想获取内部类就获取不到了,
请问这是遵循什么规则,还是内部类的作用域只是在同包下
------解决方案--------------------Outer 类中定义个方法呗
专门返回这个内部类示例
------解决方案--------------------
楼上正解,如果不用方法返回的话,你把这个类定义为public 的话,也是可以访问的。
内部类,你就当成个方法看待,什么public\protected\private的修饰都是 允许的,而且跟方法的限制是一样的。
------解决方案--------------------别把内部类当类看啊,当成一个属性,默认的属性你出包了能访问么
------解决方案--------------------这个和你修饰inner的关键字有关
------解决方案--------------------你没写就是default,你写成public可以访问的
------解决方案--------------------默认是protected吧