public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a); // 1 System.out.println(b); // 2 change(a, b); System.out.println(a); // 1 System.out.println(b); // 2 } public static void change(int a, int b) { a = a + b; b = b + a; }
时间: 2024-04-09 22:32:29 浏览: 147
C#中static void Main(string[] args) 参数示例详解
在这段代码中,`change()` 方法尝试修改传递给它的两个整数参数 `a` 和 `b` 的值。然而,由于Java中的参数传递是按值传递的,所以在 `change()` 方法中对参数的修改不会影响到 `main()` 方法中的变量。
具体解释如下:
1. 在 `main()` 方法中,声明并初始化两个整数变量 `a` 和 `b`,分别赋值为 1 和 2。
2. 使用 `System.out.println()` 打印变量 `a` 和 `b` 的值,分别输出 1 和 2。
3. 调用 `change(a, b)` 方法,并传递变量 `a` 和 `b` 的值作为参数。
4. 在 `change()` 方法中,接收到参数后,会创建两个新的局部变量 `a` 和 `b` 并初始化为参数的值。
5. 在 `change()` 方法中对局部变量 `a` 和 `b` 进行修改操作,但这些修改只在该方法的作用域内有效。
6. 回到 `main()` 方法后,使用 `System.out.println()` 再次打印变量 `a` 和 `b` 的值,依然输出 1 和 2。
因此,尽管在 `change()` 方法中对参数进行了修改,但因为参数传递是按值传递的,所以在 `main()` 方法中的变量并没有被修改。
阅读全文