黑马程序员技术交流社区
标题:
有关值传递与引用传递的问题
[打印本页]
作者:
贾波
时间:
2013-11-29 22:57
标题:
有关值传递与引用传递的问题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可以返回变化后的结果,那么这里到底是值传递还是引用传递?
作者:
lovecx24
时间:
2013-11-29 23:05
值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
代码说明:
//Test.java
class Test {
private String name;
public String getName() {
return name;
}
复制代码
测试类:
//TestTransferParameter.java
public class TestTransferParameter{
public static void main(String[] args) {
Test a = new Test();
a.setName("a");
Test b = new Test();
b.setName("b");
System.out.println("before swap: " + "a=" + a.getName() + "; b=" + b.getName());
swap(a,b);
System.out.println("after swap: " + "a=" + a.getName() + "; b=" + b.getName());
}
private static void swap(Test a, Test b) {
Test temp;
temp = a;
a = b;
b = temp;
System.out.println("swaping: " + "a=" + a.getName() + "; b=" + b.getName());
}
}
复制代码
输出结果:
before swap: a=a; b=b
swaping: a=b; b=a
after swap: a=a; b=b
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2