SCJP 1.6版考題 107

出自 陳富國維基館
於 2013年3月30日 (六) 05:34 由 Ikk (對話 | 貢獻) 所做的修訂 (新頁面: Given: 10. class Inner{ 11. private int x; 12. public void setX(int x){this.x = x;} 13. public int getX(){return x;} 14. } 15. 16. class Outer{ 17. private Inner y; 18. publi...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋
Given:
10. class Inner{
11. private int x;
12. public void setX(int x){this.x = x;}
13. public int getX(){return x;}
14. }
15.
16. class Outer{
17. private Inner y;
18. public void setY(Inner y){this.y = y;}
19 public Inner getY(){return y;}
20. }
 
21.
22. public class Gamma{
23. public static void main(String[] args){
24. Outer o = new Outer();
25. Inner i = new Inner();
26. int n = 10;
27. i.setX(n);
28. o.setY(i);
29. //insert code here
30. System.out.println(o.getY().getX());
31. }
32. }

Which three code fragments, added individually at line 29, produce the output 100? (Choose three.)
  A. n = 100;
  B. i.setX(100);
  C. o.getY().setX(100);
  D. i = new Inner(); i.setX(100);
  E. o.setY(i); i = new Inner(); i.setX(100);
  F. i = new Inner(); i.setX(100); o.setY(i);


解答


Ans: B C F

解說:

此題問,在第29行插入什麼可使輸出為100?
第30行,o.getY().getX()使用o物件的getY取得其成員物件參考變數y(指向一個Inner的物件),
再用這個y喚用getX方法,此方法依Inner類別會將 Inner物件中的x成員變數傳回。 
這題可繪物件圖來看。