java面向对象程序设计第2版第6章-内部类与异常类.ppt

上传人:小飞机 文档编号:6510307 上传时间:2023-11-07 格式:PPT 页数:16 大小:354.50KB
返回 下载 相关 举报
java面向对象程序设计第2版第6章-内部类与异常类.ppt_第1页
第1页 / 共16页
java面向对象程序设计第2版第6章-内部类与异常类.ppt_第2页
第2页 / 共16页
java面向对象程序设计第2版第6章-内部类与异常类.ppt_第3页
第3页 / 共16页
java面向对象程序设计第2版第6章-内部类与异常类.ppt_第4页
第4页 / 共16页
java面向对象程序设计第2版第6章-内部类与异常类.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《java面向对象程序设计第2版第6章-内部类与异常类.ppt》由会员分享,可在线阅读,更多相关《java面向对象程序设计第2版第6章-内部类与异常类.ppt(16页珍藏版)》请在三一办公上搜索。

1、Java面向对象程序设计第2版 第6章,配合第2版 例子源代码一起使用,Power point 制作:耿祥义 张跃平,内部类与异常类,导读,6.1 内部类,类可以有两种重要的成员:成员变量和方法,实际上Java还允许类可以有一种成员:内部类。Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。内部类和外嵌类之间的重要关系如下。内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类

2、声明对象。,例子1,某种类型的农场饲养了一种特殊种类的牛,但不希望其他农场饲养这种特殊种类的牛,那么这种类型的农场就可以将创建这种特殊种牛的类作为自己的内部类。下面的例子1(Example6_1.java)中有一个RedCowForm(红牛农场)类,该类中有一个名字为RedCow(红牛)的内部类。程序运行效果如图6.1。,6.2 匿名类 6.2.1 和子类有关的匿名类,Java允许我们直接使用一个类的子类的类体创建一个子类对象。创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称作匿名类。假设Bank是类,那么下列代码就是用Bank的一个子类(匿名类)

3、创建对象:new Bank()匿名类的类体;,例子2,下面的例子2中,向一个方法的参数传递了一个匿名类的对象,并用匿名类创建了一个对象。运行效果如图6.2。Example6_2.java 程序运行效果如图6.2。,6.2.2 和接口有关的匿名类,假设Computable是一个接口,那么,Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computable接口的类去掉类声明后的类体,称作匿名类。下列代码就是用实现了Computable接口的类(匿名类)创建对象:new Computable()实现接口的匿名类的类体;例子3演示了和接口有关的匿名类的用法,运行效果如图6.3

4、。,6.3 异常类,所谓异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误作出处理。异常对象可以调用如下方法得到或输出有关异常的信息:public String getMessage();public void printStackTrace();public String toString();,6.3.1 trycatch语句,Java使用trycatch语句来处理异常,将可能出现的异常操作放在trycatch语句的try部分,将发生异常后的处理放在catch部分。trycatch语句的格式如下:,例子4给出了tryc

5、atch语句的用法,程序运行效果如图6.4,try 包含可能发生异常的语句 catch(ExceptionSubClass1 e)catch(ExceptionSubClass2 e),6.3.2 自定义异常类,我们也可以扩展Exception类定义自己的异常类,然后规定哪些方法产生这样的异常。一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。,注:throw是Java的关键字,该关键字的作用就是抛出异常.throw和throws是两个不同的关键字。,

6、例子5,People类中有一个设置age的方法,如果向该方法传递小于1或大于160的整数,方法就抛出异常。程序运行效果如图6.5。Example6_5.java People.java IntegerException.java,6.4 finally子语句,本节通过一个例子熟悉带finally子语句的trycatch语句,语法格式如下:try catch(ExceptionSubClass e)finally 其执行机制是:在执行trycatch语句后,执行finally子语句,也就是说,无论在try部分是否发生过异常,finally子语句都会被执行。但需要注意以下两种特殊情况:如果在try

7、catch语句中执行了return语句,那么finally子语句仍然会被执行。trycatch语句中执行了程序退出代码,即执行System.exit(0);,则不执行finally子语句。,例子6,例子6中模拟向货船上装载集装箱,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。运行效果如图6.6。代码链接,6.5 断言,断言语句用于调试代码阶段。在调试代码阶段让断言语句发挥作用,这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程又需要调试,可以重新启用断言语句。使用关键字assert声

8、明一条断言语句,断言语句有以下两种格式:assert booleanExpression;assert booleanExpression:messageException;,例子7,例子7在计算若干个正数的和时使用了断言语句,运行效果如图6.7。代码链接,6.6 小结,1Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。2和某类有关的匿名类就是该类的一个子类,该子类没有明显的用类声明来定义,所以称做匿名类。3和某接口有关的匿名类就是实现该接口的一个类,该子类没有明显的用类声明来定义,所以称做匿名类。4Java的异常可以出现在方法调用过程中,即在方法调用过程中抛出异常对象,导致程序运行出现异常,并等待处理。Java 使用trycatch语句来处理异常,将可能出现的异常操作放在trycatch语句的try部分,当try部分中的某个方法调用发生异常后,try部分将立刻结束执行,而转向执行相应的catch部分。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号