0 java
private int field;
public void f(int n) {
n = n + field;
field = field + n;
n = n + 2;
}
public void g() {
field = 2;
f(field);
}
Run Code Online (Sandbox Code Playgroud)
调用后字段的最终值是g()多少?我知道答案是6但有人可以解释一下原因吗?
您可以将代码扩展为以下内容:
field = 2; // field == 2
int n = field; // n == 2; field == 2
n = n + field; // n = 2+2 == 4; field == 2
field = field + n; // n == 4; field = 2+4 == 6
n = n + 2; // n = 4+2 == 6; field == 6
Run Code Online (Sandbox Code Playgroud)
最终价值:
field == 6
n == 6
Run Code Online (Sandbox Code Playgroud)
注意:a = b表示只b存储/复制到的值a,但是a并且b是两个彼此不相关的不同变量