值传递机制,针对基本数据类型
值传递机制,针对基本数据类型
public class ValueTrasnferTest1 {
public static void main(String[] args) {
int m=10;
int n=20;
System.out.println("m="+m+",n="+n);
//交换两个变量的值的操作
// int temp=m;
// m=n;
// n=temp;
// System.out.println("m="+m+",n="+n);
ValueTrasnferTest1 test = new ValueTrasnferTest1();
test.swap(m,n);//方法结束完销毁了
System.out.println("m="+m+",n="+n);//所以这次输出的是main方法里的m和n
}
public void swap(int m,int n){//交换两个变量的值的方法
int temp=m;
m=n;
n=temp;
//如果方法里写一个输出,则输出的是方法中的m和n
}
}
值传递机制,针对引用数据类型
public class ValueTransferTest2 {
public static void main(String[] args) {
Data data = new Data();
data.m=10;
data.n=20;
System.out.println("m="+data.m+",n="+data.n);
//交换m和n的值
// int temp =data.m;
// data.m= data.n;
// data.n=temp;
ValueTransferTest2 test = new ValueTransferTest2();
test.swap(data);
System.out.println("m="+data.m+",n="+data.n);//两个data指向堆空间中同一个变量
//所以方法结束后,还有一个指针指向这个对象,所以不会被销毁,所以可以交换
}
public void swap(Data data){//此时形参为引用数据类型
int temp =data.m;
data.m= data.n;
data.n=temp;
}
}
class Data{
int m;
int n;
}