传个对象给方法并修改对象,可打印结果..
public class Test{
public static void add3(Integer i){
int val=i.intValue();
val+=3;
i=new Integer(val);
}
public static void main(String args[]){
Integer i=new Integer(0);
add3(i); //在这里传了一个 对象 后,
System.out.println(i.intValue()); //..可为什么在调用方法后却无法改变其值,
}
}
不是说 基本数据类型 是传值,而 非基本数据类型 是传引用吗?
请问这里是?
[此贴子已经被作者于2006-9-2 23:40:13编辑过]
----------------解决方案--------------------------------------------------------
我说错了,为了不误导新手,我删了哈~!
[此贴子已经被作者于2006-9-3 20:49:04编辑过]
----------------解决方案--------------------------------------------------------
我拍!
----------------解决方案--------------------------------------------------------
NiceGirl 你的写法跟我的大同小异呀!
这是某人给我的回答:
此处传递的是引用的一个副本!
如是对象(即把这个对象存储的地址存放引用的栈空间里)的话,拷贝引用的一个副本,即拷引用中存的地址。
如是值(即把这个值存放在引用的栈空间里)的话,拷贝值的一个副本。如:C++中刚好相反!!
不知正确否?
----------------解决方案--------------------------------------------------------
很正确,你就想着指针就行了
----------------解决方案--------------------------------------------------------
之所以你们的都没有修改成功,是因为没有一个是用该指针所指的对象的赋值语句
----------------解决方案--------------------------------------------------------
明白.谢谢了
----------------解决方案--------------------------------------------------------