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

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

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

1、Java面向对象程序设计 第6章,内部类与异常类,主讲:王美丽办公室:信息学院403 Email:meili,内部类匿名类异常类断言难点异常类,主要内容,6.1 内部类,类的成员:成员变量、成员方法,Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类。,内部类可以访问外嵌类的成员变量、成员方法。,外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。,内部类的类体中不可以声明类变量和类方法。,内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到。,内部类例,public class China private String so

2、ng=义勇军进行曲;public void test()class BeijingString name=北京;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接口的类去掉类声明后的类体,称作匿名类。

4、下列代码就是用实现了Computable接口的类(匿名类)创建对象:new Computable()实现接口的匿名类的类体,6.3 异常类,能否很好的处理运行时刻的异常情况是一个程序健康的标志,输入数据不符合要求除数为0数组的下标越界少了所需加载的类打开不存在的文件网络无法连接操作数超出所要求的范围自定义异常,要求程序处理,什么时候会发生异常?,正常业务逻辑,异常捕捉,使用Java的异常处理机制,读、写和调试代码变得清晰。它把错误的代码和正常的代码分开。,Java中的处理方法?,错误:指的是系统异常或运行环境出现的异常,这些异常一般是很严重的异常,即使捕捉到通常也无法处理,例如Java虚拟机异

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

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

7、v(写一个方法,throws 异常),返回,public static int div()throws ExceptionString a=JOptionPane.showInputDialog(请输入被除数:);String b=JOptionPane.showInputDialog(请输入除数:);System.out.print(a+/+b+=);int a1=Integer.parseInt(a);int b1=Integer.parseInt(b);int c=a1/b1;System.out.println(c);return c;,三、异常的抛出和处理,如果需要在程序中自行抛出异

8、常,应使用throw语句throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例,throws是用来声明一个方法可能抛出的所有异常信息 throw则是指抛出的一个具体的异常类型;通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息;throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。,Throws 与Throw 区别,自定义异常类,通过继承Exception类或它的子类,

9、实现自定义异常类。Exception类有两个构造函数public Exception();public Exception(String s);其中s表示对异常的描述说明Exception类的常用方法:public void printStackTrace();返回调用栈信息public String toString();返回异常对象的字符串表示public String getMessage();返回异常对象中携带的出错信息,对于自定义异常,必须采用throw语句抛出异常,这种类型的异常不会自行产生。总体上分为两步:第1步:定义异常类第2步:定义异常对象,并抛出该对象。,自定义异常类,第1

10、步:定义异常类class userException extends Exceptionint n=0;/计数器userException()n+;userException(String s)super(s);n+;String show()return 自定义异常对象:+n;,自定义异常类,第2步:定义异常对象,并抛出该对象。public class testException static void Test()throws UserExceptionuserException e;e=new userException(自定义异常);throw e;public static void

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

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号