其实很多时候会遇到值传递,在C语言中还好,可是到了Java中一开始就有点不习惯。然后先按照自己的理解写写吧。值传递的话就只是把数值复制过去,而引用传递就好像是指针指向了同一个地方一样。
值传递的话交换不了数值。
引用传递的话,指向的A对象就好像是一个全局变量吧,然后在调用的swap函数以后,全局变量的数值就变了。暂时是这么理解,过几天看了java编程思想再写
值传递
public class TempTest {
public static void main(String[] args) {
int a = 10;
int b = 2;
System.out.println(a + " " + b);
swap(a, b);
System.out.println(a + " " + b);
}
public static void swap(int a, int b) {
int tmp = a;
a = b;
b = tmp;
}
}
输出为
10 2
10 2
引用传递
class A{
int a ;
int b;
}
public class TempTest {
public static void main(String[] args) {
A a = new A();
a.a =10;
a.b =2;
System.out.println(a.a+" "+a.b);
swap(a);
System.out.println(a.a+" "+a.b);
}
public static void swap(A a){
int tmp = a.a;
a.a = a.b;
a.b = tmp;
}
}
输出:
10 2
2 10