第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/6/3 11:47:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

类型转换异常(java.lang.ClassCastException)。

2、Java提供了一个关键字instanceof,它可以判断一个对象是否为某个类(或接口)的实例或者子类实例,语法格式如下:

对象(或者对象引用变量) instanceof 类(或接口)

3、进行向上类型转换,子类对象当做父类类型使用时,不能通过父类变量去调用子类中某些方法,否则会抛出编译异常。

案例4-15 匿名内部类 一、案例描述

1、 考核知识点

编 号:00104011 名 称:匿名内部类 2、 练习目标

? 了解什么是匿名内部类 ? 掌握如何使用匿名内部类

3、 需求分析

在学习接口时,如果方法的参数被定义为一个接口类型,那么就需要定义一个类来实现接口。除此之外,还可以使用匿名内部类来实现接口。为了让初学者能更好地理解什么是匿名内部类,本案例将演示如何实现一个匿名内部类。

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

1)设计一个Inter接口,接口中定义show()和method()方法。

2)设计一个Outer类,在类的function()方法中使用匿名内部类实现Inter接口并实例化,并调用show()和method()方法。

3)最后编写一个测试类Example15,创建Outer的对象并调用function()方法。

二、案例实现

1、编写Inter接口及Outer类,使用匿名内部类实现接口并创建对象。代码如下:

interface Inter { }

class Outer {

void function() {

Inter i = new Inter() {

public void show() { }

public void method() {

System.out.println(\

21

System.out.println(\

void show(); void method();

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

}

}

};

i.show(); i.method();

}

2、定义测试类Example15。代码如下:

public class Example15 { }

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

Outer o = new Outer(); o.function();

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

图4-15 运行结果

三、案例总结

1、匿名内部类的格式,具体如下:

new 父类(参数列表) 或 父接口(){ //匿名内部类实现部分 }

2、匿名内部类是实现接口的一种简便写法,在程序中不一定非要使用匿名内部类。

3、什么时候使用匿名内部类:通常在使用方法是接口类型参数,并该接口中的方法不超过三个时,可以将匿名内部类作为参数传递。

4、内部类:

(1) 将一个类B定义在另一个类A的里面,那么B类就称为内部类(嵌套类),内部类定义在成员位置上。

(2) 内部类可以直接访问外部类中的成员,包括私有成员,而外部类要访问内部类中的成员必须要建立内部类的对象。

案例4-16 try...catch语句 一、案例描述

1、 考核知识点

编 号:00104012

名 称:try...catch和finally

22

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

2、 练习目标

? 掌握如何使用try...catch语句进行异常处理

3、 需求分析

Java中提供了一种对异常进行处理的方式——异常捕获,异常捕获通常使用try…catch语句。为了让初学者熟悉try…catch语句,本案例将演示如何使用try...catch语句处理遍历时可能出现的数组角标越界异常。

4、 设计思路(实现原理) 1) 编写测试类Example16,

2) 在类Example16中定义名为arr的int类型一维数组,遍历数组输出每次遍历出的值,结束输

出“over”。

2)使用try...catch语句处理遍历时可能出现的数组角标越界异常,如果出现异常输出“角标越界”。

二、案例实现

public class Example16 { }

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

int[] arr = { 1, 2, 3, 4, 5 }; try {

for (int x = 0; x <= arr.length; x++) { }

System.out.println(arr[x]);

System.out.println(\程序继续向下执行...\

} catch (ArrayIndexOutOfBoundsException e) { }

System.out.println(\

System.out.println(\角标越界\

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

图4-16 运行结果

三、案例总结

1、try代码块中编写可能发生异常的Java语句,catch代码块中编写针对异常进行处理的代码。在try

代码块中,发生异常语句后面的代码是不会被执行的。

23

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

2、可能发生多个异常时,可以使用多个try...catch或者用一个try多个catch。 3、 Throwable:是异常体系的超类. |--Error 重大的错误,这个问题发生后,一般我们处理不了,一般不处理,而是要程序进行修正 。(内存溢出)

|--Exception 可以处理的问题,这个问题需要我们编写针对性的代码进行处理。(异常处理)

案例4-17 finally语句 一、案例描述

1、 考核知识点 编 号:00104012

名 称:try...catch和finally 2、 练习目标

? 掌握如何使用finally语句

3、 需求分析

在程序中,有时候我们希望有些语句无论程序是否发生异常都要执行,这时就可以在try…catch语句后,加一个finally代码块。为了让初学者熟悉finally代码块,本案例将演示如何使用finally语句来保证不论是否异常都输出一句话。

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

2) 在main方法中使用try…catch…finally…语句,其中try语句块中编写可能发生异常的语句10/0,

如果不异常输出“程序继续”,如果异常在catch语句块中会输出“出异常类” 3) 在finally语句块中输出“释放资源”,保证保证不论是否异常一定输出此语句

二、案例实现

public class Example17 {

public static void main(String[] args) {

try {

System.out.println(10 / 0);

//以下3行代码不执行。try中,发生异常语句后面的代码是不会被执行的 System.out.println(\程序继续\System.exit(0); return;

e.printStackTrace();

System.out.println(\出异常了\return;

} catch (ArithmeticException e) {

} finally {

//finally语句均会执行,除非在这之前执行System.exit(0);退出了JVM

24

搜索更多关于: 第4章面向对象(下)_补充案例课件 的文档
第4章面向对象(下)_补充案例课件.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3cuvh3pc2r0fluh9boav3qhtz4wh9l00ttw_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top