第4章面向对象(下)_补充案例课件 联系客服

发布时间 : 星期一 文章第4章面向对象(下)_补充案例课件更新完毕开始阅读

博学谷——让IT教学更简单,让IT学习更有效

}

}

}

System.out.println(\释放资源\

运行结果如图4-17所示。

图4-17 错误提示

三、案例总结

无论是否发生异常,finally代码块是一定会执行的。但是需要注意的是,finally中的代码块在一种情况下不会执行,那就是在执行到finally语句之前执行了System.exit(0)语句。

案例4-18 throws关键字 一、案例描述

1、 考核知识点

编 号:00104013

名 称:throws关键字

2、 练习目标

? 掌握如何使用throws关键字

3、 需求分析

Java中允许在方法的后面使用throws关键字对外声明该方法有可能发生的异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过。为了让初学者熟悉throws关键字,本案例将演示如何使用throws关键字。

4、 设计思路(实现原理) 1) 编写一个类Example18

2) 在该类中定义方法div()用于进行除法运算,运算前对被除数进行判断,如果等于0,使用throws

抛出异常对象,否则进行正常的除法运算。

3) 由于throw抛出了非运行时异常,为了保证编译通过,我们需要在方法名后面使用throws声明抛

出异常类。

2)在main方法中调用div()方法,并通过try…catch…语句处理抛出的异常。

25

博学谷——让IT教学更简单,让IT学习更有效

二、案例实现

public class Example18 { }

public static void main(String[] args) { }

public static int div(int x, int y) throws Exception { }

// 如果除数传递了0进来,这个程序就出现了异常 if (y == 0) { }

return x / y;

// 发生异常自己不处理,谁调用谁处理 // 需要在方法上进行抛出: throws 异常类 throw new Exception();

System.out.println(\除法运算开始\try {

div(1, 0);

} catch (Exception e) { }

System.out.println(\除法运算结束\

System.out.println(\处理运算异常\

运行结果如图4-18所示。

图4-18 运行结果

三、案例总结

1、throws关键字声明抛出异常的语法格式如下:

修饰符 返回值类型 方法名([参数1,参数2.....])throws ExceptionType1[,ExceptionType2.....]{ }

2、throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常。

26

博学谷——让IT教学更简单,让IT学习更有效

案例4-19 自定义异常 一、案例描述

1、 考核知识点

编 号:00104015 名 称:自定义异常 2、 练习目标

? 掌握如何自定义异常

3、 需求分析

Java中定义的异常有限,如果想描述程序中特有的异常情况,就需要自定义异常。为了让初学者熟悉自定义异常,本案例将自定义一个名为MyException的异常类来演示如何自定义异常。 4、 设计思路(实现原理)

1)自定义名为MyException的异常类,继承自Exception类。

2)在Example19类中进行除法运算,判断当除数为零时,抛出自定义的异常类 3)在main()方法中处理异常。

二、案例实现

1、编写自定义异常类,代码如下:

class MyException extends Exception { }

private int number;

MyException(String message) { }

MyException(String message, int number) { }

public int getNumber() { }

return number; super(message); this.number = number; super(message);

2、抛出异常和处理异常,代码如下:

public class Example19 {

public static void main(String[] args) {

try {

divide(20, 0);

} catch (MyException my) { }

27

System.out.println(\你给的除数是:\而我们要求是:\

+ my.getMessage());

博学谷——让IT教学更简单,让IT学习更有效

}

}

public static int divide(int a, int b) throws MyException { }

if (b = 0) { }

throw new MyException(\除数不能为零\return a / b; } else {

运行结果如图4-19所示。

图4-19 运行结果

三、案例总结

1、在Java中允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。 2、throw关键字用于在方法中声明抛出异常的实例对象,其语法格式如下:

throw Exception异常对象

3、main()方法中,定义了一个try…catch语句用于捕获divide()方法抛出的异常。在调用divide()方法时由于传入的被除数不能为零,程序会抛出一个自定义异常MyException,该异常被捕获后最终被catch代码块处理,并打印出异常信息。

案例4-20 import引入指定类 一、案例描述

1、 考核知识点

编 号:00104017 名 称:import语句

2、 练习目标

? 掌握如何使用import引入指定类

3、 需求分析

不同包下的类互相调用时,一般会使用import关键字引入包。为了方便初学者的学习,本案例将演示如何使用import引入指定类。

4、 设计思路(实现原理)

1) 在D:\\samplePackage\\chapter04 文件夹下新建Student.java文件

2) 打开文件编写Student类,类中定义int类型的变量sid,String类型的变量name和double类型的

变量score,分别表示学生id,学生姓名和分数。

2)Student类定义构造器及一个evaluation()方法,该方法用于评定学生是否为三好学生,得分大于90

28