文章目录
- 相关概念
- 1. 方法传递之基本数据类型
- 2. 方法的参数传递之引用对象
- 3. 总结
相关概念
方法,必须有其所在类或对象调用才有意义。若方法含有参数:
形参:方法声明时的参数
实参:方法调用时实际传给形参的参数值
问题:
Java 的实参值如何传入方法呢?
答:
Java 里方法的参数传递方式只有一种:值传递。 即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
1. 方法传递之基本数据类型
例子:
package default_package;
public class Test6 {
public static void swap(int i) {
i = 6;
System.out.println("swap方法中的参数i的值:" + i);
}
public static void main(String[] args) {
int a = 0;
swap(a);
System.out.println("main方法中的a的值:" + a);
}
}
运行结果:
总之,基本数据类型在参数的传递过程中,就是把实参的值复制值到形参上。
2. 方法的参数传递之引用对象
例子:
创建DataSwap.java类
package default_package;
public class DataSwap {
public int a;
}
编写调用代码Test7.java
package default_package;
public class Test7 {
public static void swap(DataSwap ds1) {
ds1.a = 6;
System.out.println("在swap方法中,ds1.a的之是:" + ds1.a);
}
public static void main(String[] args) {
DataSwap ds = new DataSwap();
System.out.println("调用swap方法之前,ds.a的值是:" + ds.a);
swap(ds);
System.out.println("调用swap方法之后,ds.a的值是:" + ds.a);
}
}
运行结果:
3. 总结
方法的参数传递:
(1) 如果方法的形参是基本数据类型,那么实参(实际的数据)向形参传递参数时,就是直接传递值,把实参的值复制给形参。
(2) 如果方法的形参是对象,那么实参(实际的对象),向形参传递参数的时,也是把值给形参,这个值是实参在栈内存中的值,也就是引用对象在堆内存中的地址
基本数据类型都是保存在栈内存中,引用对象在栈内存中保存的是引用对象的地址,那么方法的参数传递是传递值(是变量在栈内存的当中的值)