日期:2014-05-18  浏览次数:20678 次

内部类是否出包就不能访问了
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 类中定义个方法呗
专门返回这个内部类示例
------解决方案--------------------
引用:
Outer 类中定义个方法呗
专门返回这个内部类示例

楼上正解,如果不用方法返回的话,你把这个类定义为public 的话,也是可以访问的。

内部类,你就当成个方法看待,什么public\protected\private的修饰都是 允许的,而且跟方法的限制是一样的。
------解决方案--------------------
别把内部类当类看啊,当成一个属性,默认的属性你出包了能访问么
------解决方案--------------------
这个和你修饰inner的关键字有关
------解决方案--------------------
你没写就是default,你写成public可以访问的
------解决方案--------------------
默认是protected吧