SCJP 1.6版考題 133

出自 陳富國維基館
前往: 導覽搜尋
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例外。