Java中的参数只有值传递
即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
形参是基本数据类型:将实参基本数据类型变量的“数据值”的副本传递给形参
形参是引用数据类型:将实参引用数据类型变量的“地址值”的副本传递给形参
基本数据类型的参数传递
public class TestTransfer {
public static void swap(int a, int b) { i
nt tmp = a;
a = b;
b = tmp;
System.out.println("swap方法里,a的值是" + a + ";b的值是" + b);
}
public static void main(String[] args) {
int a = 6;
int b = 9;
swap(a, b);
System.out.println("交换结束后,变量a的值是" + a + ";变量b的值是" + b); }
}
/*运行 swap方法里,a的值是9;b的值是6
交换结束后,变量a的值是6;变量b的值是9 */
引用数据类型的参数传递
class DataSwap{
public int a;
public int b;
}
public class TestTransfer1 {
public static void swap(DataSwap ds){
int tmp = ds.a;
ds.a = ds.b;
ds.b = tmp;
System.out.println("swap方法里,a Field的值是" + ds.a + ";b Field的值是" + ds.b);
}
public static void main(String[] args) {
DataSwap ds = new DataSwap();
ds.a = 6;
ds.b = 9;
swap(ds);
System.out.println("交换结束后,a Field的值是" + ds.a + ";b Field的值是" + ds.b);
}
}
/*swap方法里,a Field的值是9;b Field的值是6
交换结束后,a Field的值是9;b Field的值是6 */
总结
当JAVA的方法中传参的时候:
如果参数为八大基本类型,因为他们没有地址,只有值。是将自身的值复制一份传递到形参中,作为局部变量。
如果参数为引用类型,是将自身的地址值复制一份传递到形参中。当传到形参中,它们操作的是同一份地址内的内容,所以一起改变。