SCJP 1.6版考題 107
出自 陳富國維基館
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成員變數傳回。 這題可繪物件圖來看。
|