基本数据类型的值传递 --交换数值.
/*
方法的形参的传递机制:值传递
基本数据类型的值传递 --交换数值.交换不成功
1. 形参,方法定义的小括号内的参数
2. 实参,方法调用时,实际传递给形参的数据
*/
public class Demo {
public static void main(String[] args) {
int m=10;
int n=20;
System.out.println("m" +"="+m+" "+"N"+"="+n);
//交换另个变量的值
Demo p1=new Demo();
p1.swap(8,10);
System.out.println("m" +"="+m+" "+"N"+"="+n);
}
//创建一个交换数值的方法
public void swap (int m,int n){ //这是是因为int型导入进去然后运算结束 swap视为垃圾 swap 弹出堆
int temp=m;
m=n;
n=temp;
}
}
引用数据类型的值传递 --交换数值.
/*
* 如果参数是引用数据类型,此时实参赋值给形参的是实参存储数据的地址值。
一个类名只能写一次!!!
*/
public class Demo{
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;
Demo test = new Demo();
test.swap(data);
System.out.println("m = " + data.m + ", n = " + data.n);
}
public void swap(Data data){
//这个是引用类型的在堆中有两条地址值在牵引所以不会视为垃圾就没弹出堆
int temp = data.m;
data.m = data.n;
data.n = temp;
}
}
class Data{
int m;
int n;
}