微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2SE >

内部类的使用问题

时间:2014-04-13 01:08  浏览:努力统计中...
publicclassOuter2 { privateintsize; /*定义内部类Inner*/ publicclassInner { privateintsize; publicvoiddoStuff(intsize){ size++;//存取局部变量 this.size++;//存取内部类的成员变量 Outer2.this.size++;//存取其外包类Outer的
public class Outer2
{
private int size;
/*定义内部类Inner*/
public class Inner
{
private int size;
public void doStuff(int size){
size++; //存取局部变量
this.size++; //存取内部类的成员变量
Outer2.this.size++; //存取其外包类Outer的成员变量
System.out.println("size in Inner.doStuff():"+size);
System.out.println("size in Inner class:"+this.size);
System.out.println("size in Outerclass:"+Outer2.this.size);
}
}
Inner i=new Inner(); //成员变量i指向Inner类的方法
public void increaseSize(int s){
i.doStuff(s);
} //调用内部类的Inner的方法
public static void main(String[] args) 
{
Outer2 o=new Outer2();
o.increaseSize(10);
}
}


结果为什么是
11
1
1

public class Outer2
{
private int size;

public class Inner
{
private int size;

public void doStuff(int size)
{
size++; 
this.size++; 
Outer2.this.size++; 
System.out.println("size in Inner.doStuff():" + size);         
          //这个size是方法里的参数size,传入的值是10,执行  size++后变为了11;

System.out.println("size in Inner class:" + this.size);        
          //这个size是Inner的私有变量size,没有初始化,默认为0,执行  this.size++后结果为1;

System.out.println("size in Outerclass:" + Outer2.this.size);  
           //这个size是Outer2的私有变量size,没有初始化,默认为0,执行  Outer2.this.size++后结果为1;

}
}

Inner i = new Inner(); 

public void increaseSize(int s)
{
i.doStuff(s);


public static void main(String[] args)
{
Outer2 o = new Outer2();
o.increaseSize(10);
}
}


内部类,不是啥好东西;

我几乎是才开始学编程,谢啦。


记得结贴哦;

传入参数名与成员名相同真让人蛋疼。。。

谢谢,学习一下

一楼注释的清楚明了,二楼继续补充,说出到了重点,哈哈哈
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------