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

微科社区

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

为什么t的值不变

时间:2014-04-10 09:47  浏览:努力统计中...
publicclassA { staticintt=6; Objectobj=newObject(); publicstaticvoidmain(Stringargs[]) { Aa=newA(); a.func(a.t,a.obj); System.out.println(t); } publicvoidfunc(intt,Objectobj) { t=7; obj=null; } } publicvoidfunc(intt,Objectobj) { t=7; obj=nu

public class A
{
static int t= 6;
Object obj= new Object();

public static void main(String args[])
{
A a= new A();
a.func(a.t,a.obj);
System.out.println(t);
}

public void func(int t,Object obj)
{
t=7;
obj=null;
}
}


public void func(int t,Object obj)
    {
        t=7;   
        obj=null;
    }
这里的 t 只是func方法里的一个局部变量,并不是成员变量int   t;要用this.t=7;才能给成员变量t赋值。
这么跟你说这两个t的区别吧:
我(成员变量t)知道一条路线可以去某一个地方(成员变量t=6),然后通过func方法把路线告诉了你(局部变量t),于是你也知道了怎么去那里,但是在func方法里面有人又把你的路线改变了(局部变量t=7),于是你又不知道怎么去那个地方了,但是我(成员变量t)还是知道怎么去那个地方,因为改变的是你的路线而不是我的路线。

该回复于2014-04-06 17:11:21被版主删除


懂了 很详细
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------