我需要你的知识来解释一些让我困惑的非常简单的事情如你所见,这是 Java 的一个非常初级的实践,我已经面临第一个困惑。
所以问题是,从 A、B、C、D 来看,什么是真的?
A. 第 12 行打印 4
B. 第 13 行打印 9
C. 第 13 行打印 18
D. 第 14 行打印 18
我知道答案是 C 和 D,但是因为我正在学习并且我试图理解为什么,请您向我解释一下吗?
我一开始以为正确的是A和B,但结果我错了。
到底发生了什么以及在其中ob.t = ob2; ob2.t = ob;
的作用是什么?Test t;
Class Test
1 class Test {
2 Test t;
3 static int a;
4 Test(int i) { a = i; }
5 void xchange(Test ob, int i) { ob.a = i * ob.a; }
6 }
7 class Call {
8 public static void main(String args[]) {
9 Test ob = new Test(2); Test ob2 = new Test(3);
10 ob.t = ob2; ob2.t = ob;
11 ob.xchange(ob, 2); ob2.xchange(ob.t, 3);
12 System.out.println(ob.a);
13 System.out.println(ob2.a);
14 System.out.println(ob.t.a);
15 }
16 }