您的位置:首页 > 编程语言 > Java开发

Java中值传递的实质,形式参数与实际参数。引用传递。

2016-11-09 22:33 253 查看

值传递

package ch5;

/**
* Created by Jiqing on 2016/11/9.
*/
public class Transfer {
public static void swap(int a,int b) {
int 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); // swap方法中,a的值是9,b的值是6
System.out.println("交换结束后,a的值是"+a+",b的值是"+b); // 交换结束后,a的值是6,b的值是9
// 传参数相当于复制,swap中的a、b是复制品
}
}









参数传递相当于复制一个孙悟空,真身没受影响。

真身就是实参,复制的孙悟空就是形式参数。

当系统开始执行方法时,系统为形式参数初始化,把实参变量的值赋给形参变量,方法里操作的只是形式参数而已。

实参本身没有受到影响。


引用传递(对象引用,指向对象地址)

package ch5;

/**
* Created by Jiqing on 2016/11/9.
*/
public class DataWrap {
int a;
int b;
}

package ch5;

/**
* Created by Jiqing on 2016/11/9.
*/
public class ReferenceTransfer { // 引用传递
public static void swap(DataWrap dw) { // 复制一个dw的引用,指向对象
int tmp = dw.a;
dw.a = dw.b;
dw.b = tmp;
System.out.println("swap方法中,a的值是"+dw.a+",b的值是"+dw.b);
dw = null; // 把它杀掉
}

public static void main(String[] args) {
DataWrap dw = new DataWrap();
dw.a = 6;
dw.b = 9;
swap(dw);//swap方法中,a的值是9,b的值是6
System.out.println("交换结束后,a的值是"+dw.a+",b的值是"+dw.b);//swap方法中,a的值是9,b的值是6
}
}






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: