SCJP 1.6版考題 133

出自 陳富國維基館
於 2013年3月30日 (六) 03:42 由 Ikk (對話 | 貢獻) 所做的修訂 (新頁面: Given: 10. public class ClassA{ 11. public void methodA(){ 12. ClassB classB = new ClassB(); 13. classB.getValue(); 14. } 15. } And: 20. class ClassB{ 21. public ClassC...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋
Given:
10. public class ClassA{
11. public void methodA(){
12.   ClassB classB = new ClassB();
13.   classB.getValue();
14. }
15. }
And:
20. class ClassB{
21.   public ClassC classC;
22.
23.   public String getValue(){
24.   return classC.getValue();
25.   }
26. }
 

And:
30. class ClassC{
31. public String value;
32.
33. public String getValue(){
34.   value = "ClassB";
35.   return value;
36. }
37. }
And given:
ClassA a = new ClassA();
a.methodA();

 
What is the result?
 A. Compilation fails.
 B. ClassC is displayed.
 C. The code runs with no output.
 D. An exception is thrown at runtime .

解答


Ans: D

解說:

classC.getValue() 要叫用類別C中的物件方法getValue,
classC現值為null,未指向一個類別C的物件,
以null參考來叫用一個物件方法會得到一個nullpointException例外。