很菜的问:关于对象作为参数传递 请问为什么这样会出错?...AClass objAClass;void doSth(AClass arg){ arg=new AClass();}...在调用doSth()之后objAClass还是为null 为什么?谢谢s 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AClass objAClass;AClass doSth(){ arg=new AClass(); return arg;}objAClass=doSth();===========java 是传值的,就是说只传了个对象地址的值.在函数里改变不了对象地址的值,但可以改变对象的成员,如:void doChange(AClass a){ a.setI(10);}会改变成员变量i. 在JAVA裏面對象變量又叫引用變量,意思就是說這個變量裏存放的不是對象本身,而只是一個指向對象的引用.另一方面,JAVA的方法傳遞機構是采用值傳遞的,也就是說對於每個作為參數的值在方法中都會有一個COPY.結合這兩個知識點就可以知道,在將引用變量作為參數傳遞進去時,方法中會有一個該引用的複制,在你寫的程序中只是改變了這個COPY的版本,方法一結束就消失了. malligator(大螟) 说的不错,lz应该明白了! DAO和工厂模式 JSF 中使用PreparedStatement的setString问题 一个关于多线程的问题 "this" this question ! 一个线程同步的问题 Visual J++和环境变量的简单问题,跟贴有分 该程序怎么无法显示? 用Image 来制作CURSOR的问题。。。在线等。 仍未解决的严重问题1!!! 什么是java pet store,那位仁兄失踪了。 做一个调查,在广州工作的兄弟,大家说说自己待遇情况和工龄. 请问在TextArea中,选中文本会触发什么事件????????
arg=new AClass();
return arg;
}
objAClass=doSth();===========
java 是传值的,就是说只传了个对象地址的值.
在函数里改变不了对象地址的值,但可以改变对象的成员,如:
void doChange(AClass a)
{
a.setI(10);
}
会改变成员变量i.
另一方面,JAVA的方法傳遞機構是采用值傳遞的,也就是說對於每個作為參數的值在方法中都會有一個COPY.
結合這兩個知識點就可以知道,在將引用變量作為參數傳遞進去時,方法中會有一個該引用的複制,在你寫的程序中只是改變了這個COPY的版本,方法一結束就消失了.