程序设计语言中将参数传递给方法有两种,一是按值调用:表示方法接收的是调用者提供的值;二是按引用调用:表示方法接收的是调用者提供的变量地址。
java中总是采用按值调用。方法得到的是所有参数值的一个拷贝,所以方法不能修改传递给它的任何参数变量的内容。
示例:
1.
int n =10;
int m =20;
exchange(n, m);
System.out.println(n);
System.out.println(m);
public static void exchange(int a,int b) {
int temp=a;
a=b;
b=temp;
}
结果:
2.
int []i = {1,3};
int []j = {2,4};
exchange(i, j);
System.out.println(Arrays.toString(i));
System.out.println(Arrays.toString(j));
exchange1(i, j);
System.out.println(Arrays.toString(i));
System.out.println(Arrays.toString(j));
public static void exchange(int[] a,int[] b) {
int[] temp=a;
a=b;
b=temp;
}
public static void exchange1(int[] a,int[] b) {
int temp=a[0];
a[0]=b[0];
b[0]=temp;
}
结果:
3.
User u1=new User();
u1.name="张三";
User u2=new User();
u2.name="李四";
exchange(u1, u2);
System.out.println(u1.name);
System.out.println(u2.name);
exchange1(u1, u2);
System.out.println(u1.name);
System.out.println(u2.name);
public static void exchange(User a,User b) {
User temp=a;
a=b;
b=temp;
}
public static void exchange1(User a,User b) {
String temp=a.name;
a.name=b.name;
b.name=temp;
}
结果: