Java中值传递机制实例
- 形参与实参:
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据 - 值传递机制
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值
/*
* 方法形参的传递机制:值传递
*
* 1.形参:方法定义时,声明的小括号内的参数
* 实参:方法调用时,实际传递给形参的数据
*
* 2.值传递机制:
* 如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
* 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。
*
*/
public class Test11 {
public static void main(String[] args) {
int m = 10;
int n = 20;
System.out.println("m = " + m + ", n = " + n);
System.out.print("基本数据类型测试:");
Test11 test = new Test11();
test.swap(m, n);
System.out.println("m = " + m + ", n = " + n);// 参数是基本数据类型,此时原始m,n的值并没有改变
System.out.print("引用数据类型测试:");
Data data = new Data();
data.m = 10;
data.n = 20;
test.swap(data);
System.out.println("m = " + data.m + ", n = " + data.n);// 参数是引用数据类型,此时原始m,n的值都改变
}
public void swap(int m, int n) {
int temp = m;
m = n;
n = temp;
}
public void swap(Data data) {
int temp = data.m;
data.m = data.n;
data.n = temp;
}
}
class Data {
int m;
int n;
}
上述程序执行的结果为:
m = 10, n = 20
基本数据类型测试:m = 10, n = 20
引用数据类型测试:m = 20, n = 10