微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java面向对象选择题总结归纳

今天小编就为大家分享一篇关于Java面向对象选择题总结归纳,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

把最近听的写的一些题目做下笔记!

1.下列程序的执行,说法错误的是 ( ABC )

public class MultiCatch { public static void main(String args[]){ try{ int a=args.length; int b=42/a; //10行 int c[]={1}; c[42]=99; System.out.println("b="+b); }catch(ArithmeticException e){ System.out.println("除0异常:"+e); // 15行 }catch(Arrayindexoutofboundsexception e) { System.out.println("数组超越边界异常:"+e); // 19行 } } }

A、程序将输出第15行的异常信息

B、程序第10行出错

C、程序将输出”b=42”

D、程序将输出第15或者19行的异常信息

笔记:首先分析A选项,它说第15行将会输出异常信息,那我们先看下整个程序,int a =args.length 这一句是获取args数组的长度,这个地方也许很多人都不清楚,都认为这里就是空的,也就是长度为0,那么肯定会抛出异常的,但是其实这个main中的这个数组是可以赋值的(这里大家可以百度一下),这个赋值是很特殊的,所以A不对,不一定会抛出异常。

同样B也是一样的道理。

我们看C、程序将输出”b=42”。很显然如果args数组真为0,那么他会跳过System.out.println(“b=”+b);直接进入catch语句抛出异常,所以不一定会输出42。

看D、程序将输出第15或者19行的异常信息,很显然数组越界是百分之百会报错的,但是不一定会有除0异常,所以D对。

2. 此方法返回值是多少(B )

public static int divide(){ int i = 3; try { int a = 10/0; return i; } catch (Exception e) { i = 4; return i; }finally{ i = 5; } }A.3B.4C.5D.报异常错误分析:这个题确实有点坑,但是return掌握完全 就没问题了,相信大部分人选C,但实际答案确实B。我们先一步一步分析,首先try中的肯定会抛出异常,于是到了int a =10 的时候就直接跳到了catch语句中,此时i被赋值为4,并且此时return 返回 i值,我们都知道finally的语句中是最后一定会执行的,但是我们在catch中把 i 给返回了,其他的任何赋值都没用!!!所以选B。3。对于catch子句的排列,下列哪种是正确的( B )A、父类在先,子类在后B、子类在先,父类在后C、有继承关系的异常不能在同一个try程序段内D、先有子类,其他如何排列都无关分析:我举两个像底下这种,是可以的public class MultiCatch { public static void main(String args[]){ try{ 。。。。此处省略 }catch(ArithmeticException e){ //子类异常 System.out.println("除0异常:"+e); }catch(Exception e) { System.out.println("异常:"+e); //父类异常 } } }像底下这种就不行,回报错,因为Exception是很大的一个类,基本所有异常都继承于它,有了它就可以处理所有的异常,所以导致后面写的就没有意义,所以是错的public class MultiCatch { public static void main(String args[]){ try{ 。。。。此处省略 }catch(Exception e){ //父类异常 System.out.println("异常:"+e); }catch(ArithmeticException e) { System.out.println("除0异常:"+e); //子类异常 } } }好吧,今天就写这么多,以后会继续给大家分享我做的一些题目总结以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对编程之家的支持。如果你想了解更多相关内容请查看下面相关链接

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐