欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    抽象类接口与异常处理机制.ppt

    • 资源ID:6387826       资源大小:826KB        全文页数:38页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    抽象类接口与异常处理机制.ppt

    抽象类/接口与异常处理机制,主讲:赖国荣,目 标,关联关系聚合关系接口与抽象类异常处理机制垃圾回收,类的关联关系,关联关系:表示不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。通过关联关系可以表示对象之间的沟通。多个对象处于同一个层次上包括:一对一关系一对多关系多对多关系,聚合关系,聚合关系是关联关系的一种,是强的关联关系,表示整体与个体的关系。聚合关系用于对模型元素之间的组装关系进行建模。汽车由很多零部件组成;计算机由很多设备组成图书馆由很多书组成公司由很多部门组成,抽象类,在java中用abstract关键字来修饰一个类时,这个类叫做抽象类。abstract class className 抽象类的特点:抽象类不能直接运用new创建对象抽象类的实体中可以有abstract方法,且abstract方法只允许声明,而不允许实现abstract returnType method(paramList);抽象类中不一定要包含abstract方法,但一个类中包含了abstract方法,则这个类必须声明为abstract类。抽象类的实现子类必须实现抽象类中所有的abstract方法,接 口,接口:是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。接口的含义:所有实现了该特定接口的类看起来都象它。,接口图形例子,接口的定义-1,格式如下:access interface interfaceName extends listOfSuperInterface type final-var-name1=value;type final-var-nameN=value;return-type method-name1(para-list);return-type method-nameN(para-list);,接口的定义-2,1、access为public 或没有(默认包访问修饰符)。2、包括接口声明和接口体;接口体包括常量定义和方法定义。3、常量被实现该接口的多个类共享;具有public,final,static的属性。4、方法体具有 public和abstract属性。,接口定义例子,Interface Callback String name=interface callback;void callback(int param);错误:void callback(int param),接口的实现-implements 关键字,实现格式:access class classname extends superclass implements interface,interface/class-body 1、access是public或没有(默认包访问修饰)。2、一个类可以实现多个接口,在implements子句中用逗号分开。3、实现类共享接口中定义的常量为,而且必须实现接口中定义的所有方法。4、实现接口的方法必须声明成public,且必须严格与接口定义中制定的类型匹配。5、若多个接口中有相同的方法,只现实一次。6、可在实现类中定义自己的附加变量或方法。,接口实现的例子,public class Client implements Callback/实现接口中定义的方法 public void callback(int p)System.out.println(callback called with+p);/自定义方法 public void nonIfaceMeth()System.out.println(define other method);,接口的局部实现-抽象类,如果一个类包含一个接口但是不完全实现接口中定义的方法,那么该类必须定义成abstract型。例如:abstract class Incomplete implements Callback int a,b;void show()System.out.println(a+“+b);任何继承Incomplete的类都必须实现callback()方法,或是自己也定义成abstract类。,接口的应用,1、用接口实现多重继承2、用接口来实现群组常量的定义3、可以将接口当成接口类型来使用 4、接口可以扩展,用接口实现多重继承接口的应用,Java只支持单继承,那么我们可以通过实现接口的方式,让一个类拥有多个类型的操作。例如:如果要表示一个X是一个A和一个B以及一个C;,X 的抽象类或具体的基类,接口A,接口C,接口B,X 实现类,接口A,接口B,接口C,extends,implements,实现群组定义接口的应用,因为接口中定义的任何字段都是static和final的,可以将接口当成创建常量组的工具。例如:public interface Months int JANUARY=1,FEBRUARY=2,MARCH=3,APRIL=4,MAY=5,JUNE=6,JULY=7,AUGUST=8,SEPTEMBER=9,OCTOBER=10,NOVERBER=11,DECEMBER=12;引用的方法:packageName.Months.JANUARY即可代表数字1。缺点:缺少安全性。,接口类型的使用接口的应用,接口可作为一种引用类型来使用。可创建一个接口类型的类实例对象。一个接口引用变量仅知道被它的接口定义声明的方法。,String nameA;,Void method1()Void method2(),String nameB;,Void method1()Void method2()Void method3(),implements,A a=new B();a.method1();a.method2();a.nameA;/B中定义的方法和变量无法调用/出现编译错误a.nameB;a.method3();,Class B,Interface A,接口扩展接口的应用,通过继承可以在新接口中添加新的方法,还可以在新接口中组合数个接口。当一个类实现了该接口,它必须实现接口继承链表中定义的所有方法。例如:,Interface A,Void method1()Void method2(),Interface B,Void method3(),extends,Interface A,Void method1()Void method2()Void method3(),Implements,当接口B继承接口A后,将包含method1()和 method2()两个方法,自己再增加method3(),异 常,在程序运行过程中所发生的破坏了正常的指令流程的事件称为例外。软件和硬件错误都可能导致他们的产生。例如:用户输入出错 所需文件找不到 运行时磁盘空间不够 内存不够 算术运算错误(数的溢出,被零除)数组下标越界,异 常,异常:是在程序执行过程中出现的一个事件,它中断了正常指令的运行。错误:偏离了可接受的代码行为的一个动作或一个实例。,异常例子,public class HelloWorld public static void main(String args)int i=0;String greetings=Hello world!,No,I mean it!,HELLO WORLD!;while(i 4)System.out.println(greetings i);i+;,public class ExceptionDemo public static void main(String args)int i=0;System.out.println(5/i);,异常处理机制,可分为以下几个步骤:1)抛出异常:在堆栈中创建一个异常对象。当方法中有一个错误发生后,该方法创建一个异常对象并把它交给运行系统。异常对象中包含了有关异常的信息,如异常类型、发生错误时的程序状态等。2)捕获异常:找到异常处理程序。运行时系统在方法调用堆栈里为被抛出的异常查找处理代码。运行系统从发生错误的方法开始进行回朔,在方法调用堆栈里向后搜索,直到找到能处理当前发生的异常的处理程序的方法。3)处理异常。通过方法调用来处理异常。4)终止或恢复运行。如果运行时系统在方法调用栈查遍了所有的方法(主方法中)而未找到合适的异常处理程序,则运行时系统终止执行。,异常处理的优越性,与传统的错误处理技术相比,java程序使用异常处理错误有以下优越性:可以把错误代码与常规代码分隔开可以在调用栈中传播错误可以对错误类型进行分组,异常类及其子类,所有异常类型都是Throwable的子类,用户程序可能捕获的异常,也是用来创建用户异常类型子类的基类。,用于显示与Java运行时系统本身有关的错误,Error类对象由Java虚拟机生成并抛出;Exception类对象由应用程序处理或抛出。,1、Throwable类是所有例外类型的父类,不能被直接使用,表示任何可以作为异常被抛出的类。2、Error用来表示编译时和系统错误,表示恢复不是不可能但很困难情况下的一种严重问题。比如说内存溢出,它不可能执行程序处理这样的问题,一般是和VM有关的问题。,异常类及其子类-2,3、Exception是可以被抛出的基本异常类型,在JAVA类库、用户方法以及运行时故障中都可能抛出Exception型异常。RuntimeException 运行时异常。它表示程序运行正常的话就不会发生这种问题,这种异常不用在程序中把他们列出来,运行时有问题,会自动被JVM抛出。比如空指针异常,数组超出异常。除了运行时例外之外的其他由Exception 继承来的例外类都是非运行时的例外,例如FileNotFoundException(文件未找到例外)。Java编译器要求在程序中必须处理这种例外,捕获例外或者声明抛弃例外。,异常类及其子类-3,异常处理,由五个关键字 try、catch、throw、throws 和 finally 处理异常。异常处理的两种方式:try-catch-finally语句捕获异常try catch(Exception e)finally 方法声明时用throws声明方法体内有异常,捕获异常,Try.catch(ExceptionName1 e1).catch(ExceptionName2 e2).catch(ExceptionNameN eN).finally.,捕获异常,try 选定捕获例外的范围,由try所限定的代码块中的语句在执行过程中可能会生成例外对象并抛弃。catch()放置异常处理程序。1、catch必须紧跟在try之后2、可有多个catch块,但异常类型必须是层层嵌套的,即先从子类异常,最后才到父类异常。3、当抛出异常时,异常处理机制将负责搜索参数与异常类型相匹配的第一个处理程序。4、只有匹配的catch子句能执行,和switch不同,不需要break.5、可通过throwable类提供的方法getMessage(),printStackTrace()来跟踪异常事件发生时执行堆栈的内容。finally 为异常处理提供一个统一的出口或定义跳转流程;该语句永远会被执行。,例子,public class CatchException public static void main(String args)String greetings=Hello world!,No,I mean it!,HELLO WORLD!;for(int i=0;i4;i+)try System.out.println(greetingsi);catch(ArrayIndexOutOfBoundsException e)System.out.println(ArrayIndexOutOf Exception!);finally System.out.println(This is always printed!);/end for,例子:TryCatchFinallyDemo.java,Throwable类的常用方法,Throwable类的常用方法 getMessage()返回异常的原因getStackTrace()返回堆栈跟踪情况printStackTrace()打印堆栈的标准错误流printStackTrace(PrintStreams)打印堆栈的标准打印流toString()返回简单描述.,例子:ExceptionMethodDemo.java,声明异常,Throws Exception 如果在一个方法中生成了一个例外,但是这一方法并不确切地知道该如何对这一异常事件进行处理,这时,该方法就应该声明抛弃例外,使得例外对象可以从调用栈向后传播,直到有合适的方法捕获它为止。这是一种消极的异常处理机制。一般该方法用在调用第三方工具包的时候。声明一个异常有两种方法:throwthrows,可以通过throw关键字在可能出现异常的执行语句后面声明抛出一个异常。格式:throw ThrowableObject;ThrowableObject必须为Throwable类或其子类的对象,声明异常-throw,例子:ThrowExceptionDemo.java,声明异常-throws,在一个方法声明时通过throws关键字在声明异常。例如:public int read()throws IOException.throws子句中同时可以指明多个例外,之间由逗号隔开。例如:public static void main(String args)throws IOException,IndexOutOfBoundsException,例子:ThrowsDemo.java,自定义异常类,声明一个新的异常类,该异常类必须从Java已有定义的异常类继承,如Exception、IOException等。为新的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能够体现该类所对应的错误的信息。,例子:DefineExceptionDemo.java,自定义异常类例子,public class MyException extends Exception private int x;public MyException()public MyException(String msg)super(msg);public MyException(String msg,int x)super(msg);this.x=x;public int val()return x;public String getMessage()return Detail Message:+x+super.getMessage();,例子:ExtraFeatures.java,垃圾处理器,1、java是通过finalize()方法进行垃圾处理的。finalize()方法是在对象被当成垃圾从内存中释放之前调用,而不是变成垃圾前调用。finalize()方法不用在程序中启动,JVM会在需要的时候自己启动该方法进行垃圾处理。有可能直到程序终止,该方法都不会执行。2、可通过System.gc()方法来强制启动垃圾回收器来处理垃圾。,总 结,关联关系聚合关系接口与抽象类异常处理机制垃圾回收,

    注意事项

    本文(抽象类接口与异常处理机制.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开