java基础教程(第3版)_第7章_内部类与异常类_图文

java基础教程(第3版)_第7章_内部类与异常类_图文

ID:18039995

大小:348.00 KB

页数:13页

时间:2018-09-13

java基础教程(第3版)_第7章_内部类与异常类_图文_第1页
java基础教程(第3版)_第7章_内部类与异常类_图文_第2页
java基础教程(第3版)_第7章_内部类与异常类_图文_第3页
java基础教程(第3版)_第7章_内部类与异常类_图文_第4页
java基础教程(第3版)_第7章_内部类与异常类_图文_第5页
资源描述:

《java基础教程(第3版)_第7章_内部类与异常类_图文》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、注意:开始用功了!第页《Java基础教程(第3版)》第7章配合例子源代码一起使用Powerpoint制作:耿祥义张跃平内部类与异常类主要内容第页7.1内部类Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。内部类和外嵌类之间的重要关系如下。内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。下面的例子1(Example7_1.java)中有

2、一个RedCowForm类,该类中有一个名字为RedCow(红牛)的内部类。程序运行效果如图7.1。第页7.2匿名类7.2.1和子类有关的匿名类Java允许我们直接使用一个类的子类的类体创建一个子类对象。创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称作匿名类。假设Bank是类,那么下列代码就是用Bank的一个子类(匿名类)创建对象:newBank(){匿名类的类体};例子2运行效果如图7.2。第页7.2.2和接口有关的匿名类假设Computable是一个接口,那么,Java允许直接用接口名和一个类体创建一个匿名对象,此类

3、体被认为是实现了Computable接口的类去掉类声明后的类体,称作匿名类。下列代码就是用实现了Computable接口的类(匿名类)创建对象:newComputable(){实现接口的匿名类的类体};例子3演示了和接口有关的匿名类的用法,运行效果如图7.3。例如,对于voidf(ComPutablex)其中的参数x是接口,那么在调用f时,可以向f的参数x传递一个匿名对象,例如:f(newComPutable(){实现接口的匿名类的类体})第页7.3异常类所谓异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序

4、有机会对错误作出处理。Java使用throw关键字抛出一个Exception的子类的实例表示异常发生。异常对象可以调用如下方法得到或输出有关异常的信息:publicStringgetMessage();publicvoidprintStackTrace();publicStringtoString();第页7.3.1try~catch语句Java使用try~catch语句来处理异常,将可能出现的异常操作放在try~catch语句的try部分,将发生异常后的处理放在catch部分。try~catch语句的格式如下:try{包含可能发生异常的语句}catch(Except

5、ionSubClass1e){…}catch(ExceptionSubClass2e){…}例子4给出了try~catch语句的用法,程序运行效果如图7.4第页7.3.2自定义异常类我们也可以扩展Exception类定义自己的异常类,然后规定哪些方法产生这样的异常。一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。第页例子5通常情况下,计算两个整数之和的方法不应当有任何异常放生,但是,对某些特殊应程序,可能不允许同号的整数做求

6、和运算,比如当一个整数代表收入,一个整数代表支出时,这两个整数就不能是同号。例子5中,Bank类中有一个income(intin,intout)方法,对象调用该方法时,必须向参数in传递正整数、向参数out传递负数,并且int+out必须大于等于0,否则该方法就抛出异常(BankException.java)。因此,Bank类在声明income(intin,intout)方法时,使用throws关键字声明要产生的异常。程序运行效果如图7.5。第页7.3.3finally子语句在某些情况下可以在try~catch语句中增加finally子语句,语法格式如下:try{}c

7、atch(ExceptionSubClasse){}finally{}其执行机制是:在执行try~catch语句后,执行finally子语句,也就是说,无论在try部分是否发生过异常,finally子语句都会被执行。例子6中模拟向货船上装载集装箱,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。运行效果如图7.6。第页7.4小结1.Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。2.和某类有关的匿名类就是该类的一个子类,该子类没有明显的用类声明来定义,所以称

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。