异常类嵌套类枚举类.docx

上传人:b****6 文档编号:8766486 上传时间:2023-05-14 格式:DOCX 页数:14 大小:190.90KB
下载 相关 举报
异常类嵌套类枚举类.docx_第1页
第1页 / 共14页
异常类嵌套类枚举类.docx_第2页
第2页 / 共14页
异常类嵌套类枚举类.docx_第3页
第3页 / 共14页
异常类嵌套类枚举类.docx_第4页
第4页 / 共14页
异常类嵌套类枚举类.docx_第5页
第5页 / 共14页
异常类嵌套类枚举类.docx_第6页
第6页 / 共14页
异常类嵌套类枚举类.docx_第7页
第7页 / 共14页
异常类嵌套类枚举类.docx_第8页
第8页 / 共14页
异常类嵌套类枚举类.docx_第9页
第9页 / 共14页
异常类嵌套类枚举类.docx_第10页
第10页 / 共14页
异常类嵌套类枚举类.docx_第11页
第11页 / 共14页
异常类嵌套类枚举类.docx_第12页
第12页 / 共14页
异常类嵌套类枚举类.docx_第13页
第13页 / 共14页
异常类嵌套类枚举类.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

异常类嵌套类枚举类.docx

《异常类嵌套类枚举类.docx》由会员分享,可在线阅读,更多相关《异常类嵌套类枚举类.docx(14页珍藏版)》请在冰点文库上搜索。

异常类嵌套类枚举类.docx

异常类嵌套类枚举类

课程名称面向对象程序设计

实验项目名称异常类、嵌套类、枚举类

学生姓名专业班级学号

注意:

●务请保存好各自的源代码,已备后用。

●完成本实验后,将实验项目文件和实验报告,压缩为rar文件,上传ftp。

如没有个人文件夹,请按学号_姓名格式建立。

●文件名为:

学号_日期_实验XX,如30801001_20100305_实验01.rar

●请务必在下次实验课之前提交作业,迟交缺交实验报告将酌情扣分。

●请勿抄袭作业。

一次作业抄袭的扣分数至少为缺交作业的3倍。

一.实验目的和要求

掌握异常类、嵌套类、枚举类

二.实验内容

1、程序阅读

2、综合体

三.实验结果与分析(可将程序运行结果截屏,也可分析运行结果)

(一)、程序阅读结果

1.运行下面的Test类,写出运行结果,并分析比较代码1与代码2两种方式的异同

abstractclassA{

abstractvoidabc();

voidbbb(){abc();}

}

classBextendsA{

voidabc(){System.out.println("bbb");}

}

classTest{

staticvoidf(Aa){a.bbb();}

publicstaticvoidmain(String[]args){

f(newA(){

voidabc(){System.out.println("bbb");}

}

);//代码1

f(newB());//代码2

}

}

代码1是匿名类实现;

代码2是顶层类实现;

2.运行下面的Test类,写出运行结果,并分析比较代码1与代码2两种方式的异同

interfaceIA{

voidabc();

voidbbb();

}

classAimplementsIA{

publicvoidbbb(){System.out.println("ccc");}

publicvoidabc(){System.out.println("bbb");}

}

classTest{

staticvoidf(IAa){a.bbb();}

publicstaticvoidmain(String[]args){

f(newIA(){

publicvoidbbb(){System.out.println("ccc");}

publicvoidabc(){System.out.println("bbb");}

}

);//代码1

f(newA());//代码2

}

}

(二)、综合题

1.编译下面的程序,并回答问题。

classExceptionTest1{

publicstaticvoidmain(String[]args){

inta=0,b=0;

try{

a=Integer.parseInt(args[0]);//语句1

b=10;//语句2

}

catch(NumberFormatExceptione){

a=1;

}

System.out.println(a);

System.out.println(b);

}

}

(1)执行上述ExceptionTest1类(在命令提示符下敲入javaExceptionTest199)

运行结果:

(2)执行上述ExceptionTest1类(在命令提示符下敲入javaExceptionTesta)

运行结果:

(3)比较上面两次运行的结果,说明原因。

(思考:

执行语句1时发生异常,语句2执行没有?

第一次执行时,输入了99,99可以被强制转化,所以不会出错,此时a=99,b=10;

第二次执行时,输入了a,而a不能被强制转化成Integer类,所以执行Integer.parseInt(args[0])语句时,就会出错,使得a=1,则b=10就不会被执行,所以b仍然是0;

2.编译下面的程序,并回答问题。

classExceptionTest2{

publicstaticvoidmain(String[]args){

inta=0;

try{

a=Integer.parseInt(args[0]);

}

}

}

(1)编译上述程序,是否出错?

出错。

(2)如果出错,给出出错信息(即javac编译该文件出错信息):

分析为何出错?

try语句之后一定要带有catch或者finally。

(2)如果将程序改写为:

classExceptionTest2{

publicstaticvoidmain(String[]args){

inta=0;

try{

a=Integer.parseInt(args[0]);

}

catch(NumberFormatExceptione){

a=1;

}

}

}

上述程序是否编译出错?

为什么?

没有出错。

(3)如果将程序改写为:

classExceptionTest2{

publicstaticvoidmain(String[]args){

inta=0;

try{

a=Integer.parseInt(args[0]);

}

finally{

a=1;

}

}

}

上述程序是否编译出错?

为什么?

没有出错。

(4)如果将程序改写为:

classExceptionTest2{

publicstaticvoidmain(String[]args){

inta=0;

try{

a=Integer.parseInt(args[0]);

}

catch(Exceptione){

a=1;

}

catch(NumberFormatExceptione){

a=2;

}

}

}

上述程序是否编译出错?

出错。

分析为何出错,如何修改程序使之正确?

异常已经被catch(Exceptione)处理,catch(NumberFormatExceptione)无法找到catch块。

直接去掉catch(NumberFormatExceptione){}。

3、编译下面的程序,并回答问题。

classExceptionTest3{

publicstaticvoidmain(String[]args){

check(-1);

}

staticvoidcheck(inti){

if(i<0)thrownewException();

}

}

(1)上述程序编译是否出错?

出错。

分析错误原因

异常类型Exception未被处理。

(2)将上述程序修改为:

classExceptionTest3{

publicstaticvoidmain(String[]args){

check(-1);

}

staticvoidcheck(inti)throwsException{

if(i<0)thrownewException();

}

}

那么,上述程序编译是否出错?

出错。

分析出错原因:

异常类型Exception未被处理。

4.编译下面程序,回答问题。

classExceptionTest4{

publicstaticvoidmain(String[]args){

method3();

System.out.println("success!

");

}

staticvoidmethod1(){

thrownewException();

}

staticvoidmethod2(){

method1();

}

staticvoidmethod3(){

method2();

}

}

(1)上述程序编译是否出错?

出错。

编译错误是什么?

异常类型Exception未被处理。

(2)修正上述程序(通过两种方式:

给方法添加throws子句,或者使用try-catch-finally)。

classExceptionTest4{

publicstaticvoidmain(String[]args){

try{method3();}

catch(Exceptione){System.out.println("success!

");}

}

staticvoidmethod1()throwsException{

thrownewException();

}

staticvoidmethod2()throwsException{

method1();

}

staticvoidmethod3()throwsException{

method2();

}

}

(3)如果将方法method1中的thrownewException();更改为:

thrownewRuntimeException();

那么程序是否编译通过?

通过。

如果编译正常,那么执行ExceptionTest4类,出现什么结果(是否会显示success字符串)?

不会显示success。

如何修改程序使得能够显示success字符串?

classExceptionTest4{

publicstaticvoidmain(String[]args){

try{

method3();

}catch(RuntimeExceptione){

System.out.println("success!

");

}

}

staticvoidmethod1(){

thrownewRuntimeException();

}

staticvoidmethod2(){

method1();

}

staticvoidmethod3(){

method2();

}

}

5、设计一个简单的类ExceptionTest,在该类的main方法中实现:

将输入参数args[0]转换为int类型的数字(要求使用包装类的数字转换方法,并通过try-catch-finally方式捕获并处理转换异常),然后显示这个数字的平方值。

比如,在命令提示符下输入javaExceptionTest9并回车,程序显示81。

publicclassExceptionTest{

publicstaticvoidmain(String[]args){

inta;

try{

a=Integer.parseInt(args[0]);

a=a*a;

}catch(NumberFormatExceptione){

a=1;

}

System.out.println(a);

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2