java基础教程(第3版)_第7章_内部类与异常类_图文_第1页
java基础教程(第3版)_第7章_内部类与异常类_图文_第2页
java基础教程(第3版)_第7章_内部类与异常类_图文_第3页
java基础教程(第3版)_第7章_内部类与异常类_图文_第4页
java基础教程(第3版)_第7章_内部类与异常类_图文_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

注意:开始用功了 !1 页 Java 基础教程(第 3版) 第 7章配合 例子源代码一起使用Power point 制作:耿祥义 张跃平内部类与异常类 主要内容3 页7.1 内部类 Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。 内部类和外嵌类之间的重要关系如下。内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。下面的 例子 1(Example7_1.java)中有一个 RedCowForm类,该类中有一个名字为 RedCow( 红牛)的内部类。 程序运行效果如图 7.1。 4 页7.2 匿名类 7.2.1 和子类有关的匿名类 Java允许我们直接使用一个类的子类的类体创建一个子类对象。创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称作匿名类。 假设 Bank是类,那么下列代码就是用 Bank的一个子类(匿名类)创建对象:new Bank () 匿名类的类体;例子 2 运行效果如图 7.2。 5 页7.2.2 和接口有关的匿名类 假设 Computable是一个接口,那么, Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了 Computable接口的类去掉类声明后的类体,称作匿名类。下列代码就是用实现了 Computable接口的类(匿名类)创建对象:new Computable() 实现接口的匿名类的类体 ; 例子 3演示了和接口有关的匿名类的用法, 运行效果如图 7.3。 例如,对于 void f(ComPutable x)其中的参数 x是接口,那么在调用 f时,可以向 f的参数 x传递一个匿名对象,例如:f(new ComPutable() 实现接口的匿名类的类体) 6 页7.3 异常类 所谓异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误作出处理。Java使用 throw关键字抛出一个 Exception的子类的实例表示异常发生。 异常对象可以调用如下方法得到或输出有关异常的信息:public String getMessage();public void printStackTrace();public String toString(); 7 页7.3.1 trycatch语句 Java使用 trycatch语句来处理异常,将可能出现的异常操作放在trycatch语句的 try部分,将发生异常后的处理放在 catch部分。trycatch语句的格式如下:try 包含可能发生异常的语句catch(ExceptionSubClass1 e) catch(ExceptionSubClass2 e) 例子 4 给出了 trycatch语句的用法, 程序运行效果如图7.48 页7.3.2 自定义异常类 我们也可以扩展 Exception类定义自己的异常类,然后规定哪些方法产生这样的异常。一个方法在声明时可以使用 throws关键字 声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用 throw关键字抛出该异常对象,导致该方法结束执行。 9 页例子 5通常情况下,计算两个整数之和的方法不应当有任何异常放生,但是,对某些特殊应程序,可能不允许同号的整数做求和运算,比如当一个整数代表收入,一个整数代表支出时,这两个整数就不能是同号。例子 5中, Bank类 中有一个income(int in,int out)方法,对象调用该方法时,必须向参数 in传递正整数、向参数 out传递负数,并且 int+out必须大于等于 0,否则该方法就抛出异常 (BankException.java )。因此,Bank类在声明 income(int in,int out)方法时,使用 throws关键字声明要产生的异常。 程序运行效果如图 7.5。 10 页7.3.3 finally子语句 在某些情况下可以在 trycatch语句中增加 finally子语句,语法格式如下:trycatch(ExceptionSubClass e) finally其执行机制是:在执行 trycatch语句后,执行 finally子语句,也就是说,无论在 try部分是否发生过异常, finally子语句都会被执行。例子 6中模拟向货船上装载集装箱,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。运行效果如图 7.6。11 页7.4 小结1 Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。2和某类有关的匿名类就是该类的一个子类,该子类没有明显的用类声明来定义,所以称做匿名类。3和某接口有关的匿名类就是实现该接口的一个类,该子类没有明显的用类声明来定义,所以称做匿名类。4 Java的异常可以出现在方法调用过程中,导致程序运行出现异常,并等待处理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论