1.形参:用来接收调用该方法是传递的参数。在被调用时才分配内存空间,一旦调用结束就释放内存,作用域为方法内部。
public void swapValue(int a, int b) {
int temp = b;
b = a;
a = temp;
System.out.println(a + "\n" + b);
}
上面代码中的a和b为形参。
2.实参:传递值给被调用方法,且该值已有确定值。
swapValue(1, 2);
swapValue方法中a=1, b=2;其中1和2为实参。
3.值传递:传实参时,参数为基本数据类型,数据本身不会改变。
int m = 1, n = 2;
swapValue(m, n);
System.out.println(m + "\n" + n);//m == 1, n == 2
调用方法内部m, n交换了值,最后m和n的值没变。
4.引用传递:传的参数为引用数据类型,传递过程中实参的地址传给了形参,形参的改变是对实参的操作。
public class Demo {
public static void main(String[] args) {
Demo demo = new Demo();
Class1 class1 = new Class1();
System.out.println(class1.i + "\n" + class1.j);//i == 1, j == 2
demo.swapValue(class1);
System.out.println(class1.i + "\n" + class1.j);//i == 2, j == 1
}
public void swapValue(Class1 clazz) {
int temp = clazz.i;
clazz.i = clazz.j;
clazz.j = temp;
}
}
class Class1 {
int i = 1;
int j = 2;
}
i和j为Class1这个类内部的属性,通过传递Class1的实例对象到swap方法,属性i和j的最最终被交换。引用传递修改的是引用对象本身。
本文深入解析Java中的参数传递机制,包括形参与实参的概念,值传递与引用传递的区别,以及如何在方法调用中正确理解和使用参数。通过具体代码示例,展示了基本数据类型与引用类型在方法调用过程中的不同行为。
1132

被折叠的 条评论
为什么被折叠?



