标题: 关于参数传递的问题 [打印本页] 作者: 史卜坤 时间: 2012-7-9 22:37 标题: 关于参数传递的问题 public class Qcb90 {
int a;
int b;
public void f() {
a = 0;
b = 0;
int[] c = { 0 };
g(b, c);
System.out.println(a + " " + b + " " + c[0] + " "); //为什么输出的是1 0 1 啊????
}
public void g(int b, int[] c) {
a = 1;
b = 1;
c[0] = 1;
}
public static void main(String args[]) {
Qcb90 obj = new Qcb90();
obj.f();
}
}
输出结果是101作者: 丁二跃 时间: 2012-7-9 22:50
java 中的 参数传递方式是 传值,基本类型不用多说,对于引用类型传递的是那个对象的引用地址
对于这个程序:g(b, c); 实际上就是g(0,0),而不是把 a b 的引用传进去了,
在方法内部:
public void g(int b, int[] c) {
a = 1;
b = 1;
c[0] = 1;
}
这里面的 a b c 已经和 类中定义的不一样了,他们只是局部变量,只在这个方法内部有效,