学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

[求助]JAVA问题

[求助]JAVA问题

本人刚开始学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了吗?
请各位高手 指点!!!








TOP


我是新人

TOP

我也是刚开始学习java的新人...... 没有帮别人解决问题的本事......
只不过把代码看了N遍... 倒是发现楼主的代码中的 Ppublic static void main(String aa[]) 中的public好像拼错了

TOP

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

TOP

回复:(kongying168)[求助]JAVA问题

“v=vh不是已经将v 指向vh了吗?”
这句话好象说错拉吧
v=vh是把vh指向v!!

TOP

amethod中的v和another中的v不是一回事,即不是同一个引用,开始它们指向同一个对象
语句v=vh;只是把another中的v指向了vh的对象,而amethod中的v的指向没有改变

TOP

发新话题