黑马程序员技术交流社区
标题:
[黑马云青年]关于参数传递
[打印本页]
作者:
shiweiCao
时间:
2013-6-10 23:54
标题:
[黑马云青年]关于参数传递
本帖最后由 shiweiCao 于 2013-6-10 23:55 编辑
当一个对象被当作参数传递到一个方法后,
此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
我觉得是值传递,Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。 但是又想不到好的方法来测试.
作者:
燃灯街
时间:
2013-6-11 00:25
在Java中并不存在引用传递(即地址传递),对于变量(可以是基本数据类型,也可以是引用数据类型)而言,可以理解为就是一个地址。传递,存在着拷贝操作。举个方法测试:
public class Terst4 {
public static void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
System.out.println("In swap: a = " + a + ", b = " + b);
}
public static void swap(Person c, Person d) {
Person temp = null;
temp = c;
c = d;
d = temp;
System.out.println("In swap: " + c + ", " + d);
}
public static void main(String[] args) {
int a = 1;
int b = 2;
Person c = new Person("c");
Person d = new Person("d");
System.out.println("对于基本数据类型");
System.out.println("Before swap: a = " + a + ", b = " + b);
swap(a, b);
System.out.println("After swap: a = " + a + ", b = " + b);
System.out.println("对于引用数据类型");
System.out.println("Before swap: " + c + ", " + d);
swap(c, d);
System.out.println("After swap: " + c + ", " + d);
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
@Override
public String toString() {
return "My name is " + this.name + ".";
}
}
作者:
袁梦希
时间:
2013-6-12 19:13
楼主你好 如果问题已经解决 请把帖子的类型改为已解决 然后会给你发几个粽子吃
作者:
袁梦希
时间:
2013-6-12 19:13
加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2