Java中的参数传递
我也是小白,可能存在错误,各位倘若看到一定要带思考去阅读。
一.下面是一段代码
二.运行的结果为
![](https://img2020.cnblogs.com/blog/1658596/202004/1658596-20200409231609385-2027615905.png)
三.过程分析
1.初始时,栈中有main方法与change方法,在main方法中各个元素进行了初始化。
2.之后执行了change方法,实参值传递到形参中。
![](https://img2020.cnblogs.com/blog/1658596/202004/1658596-20200409232207359-598035944.png)
3.在change方法中进行了相关操作。
![](https://img2020.cnblogs.com/blog/1658596/202004/1658596-20200409232318791-1433871520.png)
4.查看main中各元素的值。
i为1、str为hello、b为200、arr[0]为2、my.a为11
![](https://img2020.cnblogs.com/blog/1658596/202004/1658596-20200409232505077-1401087155.png)
*上文中的代码如下:
package cn.yang37.zother.example;
import java.lang.reflect.Array;
import java.util.Arrays;
/**
* @Author Yiang37
* @Date 2020/4/9 21:42
* Description:
* 参数传递机制
*/
public class ParameterPassing {
public static void main(String[] args) {
int i = 1;
String str = "yang";
Integer num = 200;
int[] arr = {1, 2, 3, 4, 5};
MyData my = new MyData();
change(i, str, num, arr, my);
System.out.println(i);
System.out.println(str);
System.out.println(num);
System.out.println(Arrays.toString(arr));
System.out.println(my.a);
}
public static void change(int j, String s, Integer n, int[] a, MyData m) {
j += 1;
s += "world";
n += 1;
a[0] += 1;
m.a += 1;
}
}
class MyData {
int a = 10;
}