2009年2月17日 星期二

第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

答案:D
參考:9-2 Java例外事件與處理機制

------------------------------------

ClassA a = new ClassA();
並呼叫 a.mthodA();
>>12. ClassB classB = new ClassB();
>>13. classB.getValue();
>>>23. public String getValue(){
>>>24. return classC.getValue(); //此時產稱 NullPointerException,
原因21. public ClassC classC; 沒有實體化,預設初始值是null;

沒有留言:

張貼留言