当前位置: 代码迷 >> Java相关 >> [求助]关于this的初学问题!
  详细解决方案

[求助]关于this的初学问题!

热度:72   发布时间:2007-03-31 08:32:44.0
[求助]关于this的初学问题!
public class Testvarible
{
private int i=1;
public void method()
{
int i=4,j=5;
this.i=i+j;//this.i里的i是指哪个i?
System.out.println(i);//为什么输出4?
method2(7);

}
public void method2(int i)
{
int j=8;
this.i=i+j;
System.out.println(i);//这里也不太懂!
System.out.println(this.i);
}
public static void main(String [] args)
{
Testvarible t=new Testvarible();
t.method();
}
}
搜索更多相关的解决方案: 初学  

----------------解决方案--------------------------------------------------------
this.i=i+j;//this.i里的i是指哪个i?指private int i=1;thus指向当前累里面的变量

System.out.println(i);//为什么输出4?这里的i指int i=4,j=5;是函数域中的局部变量

System.out.println(i);//这里也不太懂!这里的i是private int i=1; 因为在函数里没有重新申明 所以输出 9 是不是?

----------------解决方案--------------------------------------------------------

指向当前累里面的变量
不是指成员变量吗?
this.i=i+j;加的结果是给成员变量了吗?

this.i用的不是成员变量吗?


还有System.out.println(i);//结果是7

[此贴子已经被作者于2007-3-31 9:08:23编辑过]


----------------解决方案--------------------------------------------------------

his就是"调用方法的那个对象"的引用

看这个概念还是不太懂,有空能帮举个小例子详细说下吗?

我能这么理解吗?
A b=new A();
b.a就是this.a


----------------解决方案--------------------------------------------------------
this只在类的内部使用,但是你可以这样理解.
int i=4,j=5;
this.i=i;//左边的是对象的成员,右边的是声明的变量
//println(i)输出的是变量i;
//println(this.i);输出成员i;

method2(int i)中,println(i)输出的是形参i,传进去的是7,所以输出7.
----------------解决方案--------------------------------------------------------
可以这么想

this.i指的是成员变量,i指的是局部变量,this.i = i + j 改变的是成员变量,
局部变量并没有变,打印i打印出的是局部变量。
method2方法中原理也是一样,传递的参数i就是一个局部变量i


----------------解决方案--------------------------------------------------------

成员变量和局部变量不是在一个内存空间吗?

是不是成员在栈,方法里的变量在堆?

[此贴子已经被作者于2007-3-31 10:58:17编辑过]


----------------解决方案--------------------------------------------------------
成员在堆,方法里的变量在栈吧
堆是存放永久的,栈是存放暂时的

----------------解决方案--------------------------------------------------------

谢谢大家,终于差不多明白了,头痛半天了,谢谢!


----------------解决方案--------------------------------------------------------
对了,对象不是在堆吗?
难道成员变量和方法里的变量在堆的不同空间?

没怎么看过堆和栈,呵呵!

[此贴子已经被作者于2007-3-31 11:44:27编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案