Java面向对象程序设计第6章 内部类与异常类 Meili

上传人:豆浆 文档编号:48599494 上传时间:2018-07-17 格式:PPT 页数:26 大小:571KB
返回 下载 相关 举报
Java面向对象程序设计第6章 内部类与异常类 Meili_第1页
第1页 / 共26页
Java面向对象程序设计第6章 内部类与异常类 Meili_第2页
第2页 / 共26页
Java面向对象程序设计第6章 内部类与异常类 Meili_第3页
第3页 / 共26页
Java面向对象程序设计第6章 内部类与异常类 Meili_第4页
第4页 / 共26页
Java面向对象程序设计第6章 内部类与异常类 Meili_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Java面向对象程序设计第6章 内部类与异常类 Meili》由会员分享,可在线阅读,更多相关《Java面向对象程序设计第6章 内部类与异常类 Meili(26页珍藏版)》请在金锄头文库上搜索。

1、内部类 匿名类 异常类 断言难点 异常类主要内容6.1 内部类 类的成员: 成员变量、成员方法Java支持在一个类中声明另一个类,这样的类称作内部类 ,而包含内部类的类称为内部类的外嵌类。 内部类可以访问外嵌类的成员变量、成员方法 。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。内部类的类体中不可以声明类变量和类方法。内部类能够访问外部内的一切成员变量和方法,包括私有的 ,而实现接口或继承类做不到。内部类例public class Chinaprivate String song=“义勇军进行曲“; public void test()class Beijing String name

2、=“北京“; void speak()System.out.println(“Our capital is: “+name+“,Our national song is :“+song); public static void main(String args) China c= new China(); c.new Beijing().speak();6.2 匿名类 匿名内部类:子类去掉类声明的类体优点: 使代码更加简洁、紧凑,模块化程度更高。匿名内部类两种实现方式: 继承一个类,重写其方法; 实现一个接口(可以是多个),实现其方法。 匿名类是一个子类,用于临时创建一个内部类对象,不必单独去

3、定义该子类 匿名类体内可以对父类、抽象类以及接口的方法进行重写 由于匿名类没有类名,因此不能重用这个对象 创建形式:new People()匿名类类体; 匿名类在创建对象时,要直接使用父类的构造 方法完成三件事:1、创建一个Speak的子类,该子类为匿名类2、改写Speak中的方法speakHello()3、返回该子类的引用,赋给Speak speak和类有关的匿名类和接口有关的匿名类 Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computable接口的类去掉类声明后的类体,称作匿名类。下列代码就是用实现了Computable接口的类(匿名类)创建对象:new C

4、omputable() 实现接口的匿名类的类体 6.3 异常类 概念异常是指程序在执行过程中出现的意外 事件。特点通常会使程序的正常流程被打断能否很好的处理运行时刻的异常情况是一个程序 健康的标志 输入数据不符合要求 除数为0 数组的下标越界 少了所需加载的类 打开不存在的文件 网络无法连接 操作数超出所要求的范围 自定义异常,要求程序处理什么时候会发生异常?readfiletry open the file; /打开文件 dertermine its size; /判断大小 allocate that much memory; /分配内存 read the file into memory;

5、 /将文件读入内存 close the file; /关闭文件 catch (fileopenfailed)do sth. catch (sizederterminedfailed)do sth.catch (memoryallocatedfailed)do sth.catch (readfailed)do sth.catch(fileclosefailed)do sth. 正常 业务 逻辑异常 捕捉使用Java的异常处理机制,读、写和调试代码 变得清晰。它把错误的代码和正常的代码分开 。Java中的处理方法?错误:指的是系统异常或运行环境出现的异常, 这些异常一般是很严重的异常, 即使捕捉到

6、通常 也无法处理,例如Java虚拟机异常指的是一般的异常,例如,输入/输出(I/O)异常。对这些异常应用程序可以进行处理1、Java中的异常类2、异常处理方法 一旦捕获异常,马上进行处理 捕获异常,但并不处理,或只部分处理 重新抛出异常Java中如何进行异常处理 Java异常处理:try、catch、finally、 throw、throws 5个关键字。在方法中手动抛出异常声明方法有可能抛出的各种异常类tryfinallycatchthrowsthrow有可能会出现异常的代码一定要放到try代码块中不管有没有异常 都要执行的代码捕获和处理异常2、异常处理方法(1)try /业务实现代码 ca

7、tch (Type1 id1 ) 处理异常类型1语句; catch ( Typen id2 ) 处理异常类型2语句; /其它catch语句 finally 无论是否抛出异常都要执行的语句; 必不可少,即使只 有一句代码有try,则catch、 finally必须出现其一 。Catch块可以有多个, 从上往下依次判断,只 要捕捉到一个异常,下 面的catch块不会执行三、异常的抛出和处理 throws语句指明方法中可能要产生的异常类 型,由调用者进行异常处理。在抛出的方法定义后加上 throws Exception 功能:在调用方法和可能产生的异常的被调 用方法之间建立起系统处理异常所需的联系v

8、oid f() throws TooBig,TooSmall,OldStyle / body of f() TestDiv (写一个方法,throws 异常)返回public static int div() throws Exception String a = JOptionPane.showInputDialog(“请输入被除数: “); String b = JOptionPane.showInputDialog(“请输入除数:“); System.out.print(a+“/“+b+“=“);int a1=Integer.parseInt(a); int b1=Integer.par

9、seInt(b); int c=a1/b1; System.out.println(c);return c; 三、异常的抛出和处理l如果需要在程序中自行抛出异常,应使用 throw语句 lthrow语句抛出的不是异常类,而是一个异常 实例,而且每次只能抛出一个异常实例 throws是用来声明一个方法可能抛出的所有异常信 息 throw则是指抛出的一个具体的异常类型; 通常在一个方法(类)的声明处通过throws声明方 法(类)可能抛出的异常信息,而在方法(类)内 部通过throw声明一个具体的异常信息; throws通常不用显示的捕获异常,可由系统自动 将所有捕获的异常信息抛给上级方法; th

10、row则需要用户自己捕获相关的异常,而后在对 其进行相关包装,最后在将包装后的异常信息抛出 。 Throws 与Throw 区别自定义异常类 通过继承Exception类或它的子类,实现自定义异常 类。 Exception类有两个构造函数 public Exception(); public Exception(String s); 其中s表示对异常的描 述说明 Exception类的常用方法: public void printStackTrace();返回调用栈信息 public String toString();返回异常对象的字符串表 示 public String getMessag

11、e();返回异常对象中携带的 出错信息 对于自定义异常,必须采用throw语句 抛出异常,这种类型的异常不会自行 产生。总体上分为两步: 第1步:定义异常类 第2步:定义异常对象,并抛出该对象。自定义异常类 第1步:定义异常类 class userException extends Exception int n=0; / 计数器 userException( ) n+; userException(String s ) super(s); n+; String show( ) return “自定义异常对象:“+n; 自定义异常类 第2步:定义异常对象,并抛出该对象。 public clas

12、s testException static void Test( ) throws UserException userException e; e=new userException(“自定义异常“ ); throw e;public static void main(String args ) try Test( ); catch(userException e) System.out.println(e.show( ); 自定义异常类6.4 断言 Java1.4以后引入断言机制 主要用于监视代码的执行状态 两种格式: assert booleanExperession;如果booleanExperession为真,继续执行,否则在此 处停止执行 assert booleanExperession:messageExpression如果booleanExperession为真,继续执行,否则在此 处停止执行,并输出messageExpression23Eclipse中启用断言: Run - Run. - Arguments菜单项 的VM arguments区域,加上断言开 启的标志-enableassertions 或者-ea ,然后在debug环境下运行。 6.5 小结 内部类匿名类异常类断言谢谢!Java面向对象程序设计 第6章

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号