为什么t的值不变

tingfengx 2014-04-06 04:21:09

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;
}
}
...全文
148 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingfengx 2014-04-06
  • 打赏
  • 举报
回复
懂了 很详细
Z-ero 2014-04-06
  • 打赏
  • 举报
回复 1
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)还是知道怎么去那个地方,因为改变的是你的路线而不是我的路线。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧