是这样的.....amethod中调用
another(v,i); //v指向的对象(暂把它叫做对象x)中i=30
another中调用
v.i = 20; //对象x中的i=20
ValHold vh = new ValHold(); //新建一个对象y,y中的i=10
v = vh; //v指向对象y ,此时v指向的对象中i=10返还以后,在amethod中的v(和another中的变量v指向的对象不同了)指向的对象还是对象x,故它输出x中的i ,即20
another(v,i); //v指向的对象(暂把它叫做对象x)中i=30
another中调用
v.i = 20; //对象x中的i=20
ValHold vh = new ValHold(); //新建一个对象y,y中的i=10
v = vh; //v指向对象y ,此时v指向的对象中i=10返还以后,在amethod中的v(和another中的变量v指向的对象不同了)指向的对象还是对象x,故它输出x中的i ,即20
解决方案 »
- 拜求javax.swing.tree 的问题
- 求助!如何用Java编写一个栈
- 请问 JFormattedTextField这个类能否实现double型的输入?
- 若Applet用了accesscontroller.doPrivileged是不是可以访问任何系统资源,那java.security有何用?
- linux系统下,我用WINE安装了普通的QQ, 没见它的图标 请问我怎么运行它?到哪里找? 我连C盘也没找到,在哪儿?在线等!!谢谢
- 请问一个关于JTable得简单问题
- 请教!
- java问题2则(关于swing)
- JDBC问题
- java线程同步中死循环的使用问题
- JAVA工具、电子书籍、源代码等已刻成光盘!
- 这样一种软件,大家评价一下,有市场价值吗?
当传递简单类型时,是按值传递的。这时跟c中的实参和形参是一个概念,对形参的改变并不影响实参,例如本题中another()的形参int i。
而对于对象,是按句柄传递的,当把句柄传递给自变量时,自变量与该参数就指向同一个对象,在该方法中对对象的改变将影响作为参数的对象。
而复杂的对象传递地址(类似于指针)
7(Nomad)的回答基本上解决了我的问题。
同时也感谢大家。