java计算的意外结果

Joh*_*ter 2 java

由于下面的snipet,我得到了"1 0 1",但我不知道为什么,因此我期待"1 ​​1 1".请有人向我解释事情是如何发生的

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] + " ");
}
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();
}
}
Run Code Online (Sandbox Code Playgroud)

Jus*_*KSU 6

更改

b = 1;
Run Code Online (Sandbox Code Playgroud)

this.b = 1;
Run Code Online (Sandbox Code Playgroud)

你现在的方式是,你改变参数(本地)变量而不是类成员变量.