关于内部类
public class Ex_4_28 {
public static void main(String [] args){
Outer1 out=new Outer1();
out.inner.showOutVar();
}
}
class Outer1{
private int outVar=0;
Inner inner=new Inner();
public class Inner{
public void showOutVar(){
outVar++;
System.out.println(outVar);
}
}
}
问题:这个输出结果为什么是2呢?
蓝色的inner是Inner类的实例吗?
------解决方案--------------------偶 呵呵
Outer1 out=new Outer1();//new 了一个Outer1实例 out
Outer1.Inner obj=new Outer1().new Inner();//new 了一个Inner 实例 obj
Outer1.Inner o=out.new Inner();//new 了一个Inner实例 o
obj.showOutVar();// 对象obj outVar=1;
o.showOutVar();//o对象 使得 outVar=1;
out.inner.showOutVar();// out对象属性outVar=2;
Inner是Outer1的内部类
这样不知道你能不能理解,,,画一下内存变化图就清楚了。
------解决方案--------------------这个程序运行时,产生了2个 外围类对象:一个是out,另一个没有引用名。我们暂时叫"noname".
是通过这句产生的:
Java code
Outer1.Inner obj=[color=#0000FF]new Outer1()[/color].new Inner();