【发布时间】:2012-11-01 03:03:18
【问题描述】:
这是我的代码,请在阅读问题之前查看它
package ict201jansem2012;
public class Qn3b {
public static void main(String[] args) {
int a = 1;
int b[] = {4,5};
String s = "Good luck!";
method1(b[1]);
System.out.println("(1) b[0] = "+b[0]+"; b[1] = "+b[1]);
method2(b);
System.out.println("(2) b[0] = "+b[0]+"; b[1] = "+b[1]);
method3(a);
System.out.println("(3) a = " + a );
method4(s);
System.out.println("(4) s = " + s );
}
public static void method1(int b) {
b = 7;
}
public static void method2(int[] b) {
b[0] = 3;
}
public static void method3(int a) {
a = 3;
}
public static void method4(String s) {
s = "UniSIM";
}
}
输出: (1) b[0] = 4; b[1] = 5
(2) b[0] = 3; b[1] = 5
(3) a = 1
(4) s = 祝你好运!
所以我的问题是, 作为学习程序员,这对我来说很有趣。 int b 数组 0 的索引值已更改,但未更改其他变量,如 String s 和 int a。在我运行这个程序之前,我大致认为变量会随着方法被调用而改变它们的值,这是因为方法被调用并且主方法变量如 a,s 和 b 数组被传递,然后它们正在修改中。
那么简而言之,为什么b数组0的索引改变了,而其他变量没有改变?
【问题讨论】: