Given:



What is the result?

A.

3 4 5 6

B.

3 4 3 6

C.

5 4 5 6

D.

3 6 4 6

題解

第7~8行,宣告並實體化出了x1和x2這兩個X物件。X物件的變數成員有物件變數j,和宣告時用了static修飾的靜態(類別)變數i。兩種變數的差別在於,類別變數只會有一個存在,其記憶體空間並不會因為類別被實體化而多產生出來,也就是說,x1和x2的i變數是同一個變數,實際指到的記憶體空間是一樣的。

第9~12行,將不同的值指派給x1和x2物件的變數i和變數j。由於變數i是類別變數,因此「x1.i」和「x2.i」都可以改寫成「X.i」。

所以到最後,X.i為5,而x1.j為4、x2.j為6,輸出結果為「5 4 5 6」。