注册 登录
编程论坛 新人交流区

[求助]JAVA问题

kongying168 发布于 2007-10-26 11:15, 678 次点击
本人刚开始学JAVA,有个问题不明白,请各位指点迷津 :

class ValHold

{
public int i=10;

}

class O

{
Ppublic static void main(String aa[])

{
O a=nem O();
a.amethod();
}
public void amethod()
{ int i=100;
ValHold v=new ValHold();
v.i=30;
another(v,i);
System.out.println(v.i);
}
public void another(ValHold v,int i)

{
i=0;
v.i=20;
ValHold vh=new ValHold();
v=vh;
System.out.println(v.i+" "+i);
}
此代码运行的结果为什么最后是20,不是10,v=vh不是已经将v 指向vh了吗?
请各位高手 指点!!!








5 回复
#2
yanshana22007-10-26 11:19

我是新人
#3
╰ァ琳〆2007-10-26 11:49
我也是刚开始学习java的新人...... 没有帮别人解决问题的本事......
只不过把代码看了N遍... 倒是发现楼主的代码中的 Ppublic static void main(String aa[]) 中的public好像拼错了
#4
suda2007-10-26 11:59
以下是引用╰ァ琳〆在2007-10-26 11:49:19的发言:
我也是刚开始学习java的新人...... 没有帮别人解决问题的本事......
只不过把代码看了N遍... 倒是发现楼主的代码中的 Ppublic static void main(String aa[]) 中的public好像拼错了

#5
suda2007-10-26 12:01
回复:(kongying168)[求助]JAVA问题
“v=vh不是已经将v 指向vh了吗?”
这句话好象说错拉吧
v=vh是把vh指向v!!
#6
ypghello2007-11-20 08:50
amethod中的v和another中的v不是一回事,即不是同一个引用,开始它们指向同一个对象
语句v=vh;只是把another中的v指向了vh的对象,而amethod中的v的指向没有改变
1