Question 4
4. Given: 
31. // some code here 
32. try { 
33. // some code here 
34. } catch (SomeException se) { 
35. // some code here 
36. } finally { 
37. // some code here 
38. } 
Under which three circumstances will the code on line 37 be executed? //问题二:这句话是什么意思????我理解是:选择哪三个句子能让//line37语句运行
(Choose three.) 
A. The instance gets garbage collected. 
B. The code on line 33 throws an exception. 
C. The code on line 35 throws an exception. 
D. The code on line 31 throws an exception. 
E. The code on line 33 executes successfully. 
Answer: BCE 问题二:
为什么:D选项不行??是不是在line 31处抛出异常后,抛出异常后面的语句就不能运行了??Question 5
Given:
10. interface Foo {} 
11. class Alpha implements Foo { } 
12. class Beta extends Alpha {} 
13. class Delta extends Beta { 
14. public static void main( String[] args) { 
15. Beta x = new Beta(); 
16. // insert code here 
17. } 18. } 
Which code, inserted at line 16, will cause a 
java.lang.ClassCastException? 
A. Alpha a = x; 
B. Foo f= (Delta)x; 
C. Foo f= (Alpha)x; 
D. Beta b = (Beta)(Alpha)x; 
Answer: B
问题三:为什么C不是答案?
我查了一下ClassCastException:Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance.我理解的意思是:if该异常被抛出,表示代码正在试图对一个不是实例的子类抛出一个Object对象。
我想我的理解有误吧,什么是不是实例的子类??
也就是问题四:
attempted to cast an object to a subclass of which it is not an instance.如何理解???问题五:遇到这类不会的题,在哪里寻找答案方式是最好的呢?在CSDN上虽然大家都帮忙,可是怪不好意思的!谢谢。。

解决方案 »

  1.   

    问题一:这句话是什么意思????我理解是:选择哪三个句子 
    能让//line37语句运行 笿:意思是:下边哪三种情形之下,line37语句会得到运行 
    问题二:为什么:D选项不行??是不是在line 31处抛出异常后,抛出异常后面的语句 答:D当然不行。若31行抛出异常,则后边的try{}catch(){}语句就没有执行的机会了。控制已转移到其它地方了。
    问题三:为什么C不是答案?答:C当然是答案。你为何说C不是答案?问题三正确,故不存在问题4了。问题五:遇到这类不会的题,在哪里寻找答案方式是最好的呢?在CSDN上虽然大家都帮忙,可是怪不好意思的!答:与大家共同讨论,这没有什么不好意思的。大家都会从你的问题中得到提高。以上仅供你参考
      

  2.   

    第一、二个问题:考的是finally !其实这道题目的意思是问:在下面那三个环境下会执行finally下的语句?
              D为什么不对:当在31行抛出异常的时候,将不再向下执行了.
    第三、四个问题:考的是继承、多态,这道题目问的是下面什么情况会发生类型转换异常?
               Foo是接口,Alpha是实现Foo的一个类,Beta是Alpha的子类, Delta 是Beta的子类。
               看懂了这些类与类之间的关系,就不难判断了!instance是实例的意思!事实上想问的就是类型强转?如何转会出现异常?
    第五个问题:没错在CSDN上会是一个不错的选择!
      

  3.   

    Under which three circumstances will the code on line 37 beexecuted? //问题二:这句话是什么意思????我理解是:选择哪三个句子 在什么样的情况之下,第37行的语句会被执行。
      

  4.   

    try-catch-finally 这条语句中finally在任意情况下都会执行 因为D选项没在try语句内,也就是你没有处理异常,当出现异常时由系统处理,程序也就异常终止 java中转型只能向上转不能向下转  class Delta extends Beta {  -- Delta是父类,
    Beta是子类 Beta x = new Beta(); Foo f= (Delta)x; -->不能向上转;举个例子 : 狗继承动物 你可以认为狗是一只动物,而不能说动物是一只狗  意思个人理解为 :试图对一个对象转换为不是其子类的实例  建议:加几个javaQQ群,直接和别人讨论 
      

  5.   

    Question 4 :选择哪种情况下finally可以被执行。问题2:试图对一个对象转换为不是其子类的实例,f是接口
      

  6.   

    理解出了一点点问题了:应该是 试图将一个对象转换为一个不是实例的子类  ---》 具体也就是对象转换问题啦 cast还有转换的意思的