




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第七章Java接口、包和异常,Java程序设计,2,本章主要内容,接口实现接口的类定义接口的多态性包及创建包类的包外引用异常,不受检异常和受检异常自定义异常类,3,接口,C+语言中在定义一个类时,可以继承多个父类多继承对内存开销较大,给系统的维护、移植带来极大的不便。Java不支持多继承考虑到在实际应用中,Java引入接口的概念。Java支持一个类可以实现一个或多个接口。,4,接口概述,接口与类的差别:类有它的成员变量和成员方法,接口是一组抽象方法和常量的集合。可以认为接口是一种只有常量和抽象方法的特殊抽象类。在定义一个实现接口的类时,一定要实现接口中协议规定的那些方法功能。接口的意义:达到和C+语言中多继承一样的目的,解决了因多继承所带来的开销过大的问题。通过定义实现同一接口的类,描述了类要实现的功能框架,可以使不相关的类具有相同的行为。接口的作用与抽象类有些类似,但功能比抽象类强,使用也更方便。,接口,5,方法协议,所谓方法协议,是指只有方法名和参数,方法返回类型,而没有方法体的一种说明格式它只体现方法的说明,但不指定方法体,真正的方法体是由实现接口的类来实现。与抽象方法的关系:抽象方法的方法体是由子类实现的。,接口,6,接口的定义,接口定义包括接口的声明和接口体两部分,其语法规则为:publicinterface接口名extends父接口列表publicstaticfinal类型常量名=值;publicabstract返回类型接口方法名(形参表);,7,实现接口的类定义,实现接口的类定义:类访问控制修饰词class类名extends父类名implements接口列表类体例7-1,8,接口的多态性,在面向对象程序设计中,继承性和多态性是降低软件复杂性的有效技术。通过使用多态,使系统更容易扩充。改进软件开发的关键是软件重用,通过继承基本类和可用类库,带来软件重用的最大效益。,接口,9,接口的多态性演示,演示实现接口的各相关类的多态性:Shape提供求图形面积area协议的接口,类Circle,Triangle和ectangle依据各自情况,实现了接口Shape的area方法,因此,不同对象的求图形面积形式各异,形成多态性。例7-3,10,包(package),包是对类和接口进行组织和管理的目录结构。Java包可以视为存储相关类和接口的容器。包的另外一个好处是它提供了“唯一类名”的约定,11,创建包,包的层次结构名是类访问名的一部分,必须在程序中通过package语句指定。包的定义格式如下:package包名1.包名;其中,package是关键字,包名1.包名为层次结构包名,用圆点.分隔每个包。,创建可复用的类的步骤:1)定义一个public类,如果不是public类,它只能被同一包中的其它类引用;2)选择层次结构包名,并用package语句将其加到可复用类的源代码文件中的第一行,指明该类所在的包;注意:此时,第一行不能是空行或注释。3)编译这个类,并放到指定的classpath下,作为顶层包的父目录中。例如,指定classpath为c:j2sdk1.4.1_02jreclasses。classes目录在缺省时不存在,必须在第一个要放到该路径中的类之前创建它。创建classes目录的DOS命令:C:mdc:j2sdk1.4.1_02jreclasses,13,类的包外引用,1.import语句import语句的语法:import包名1.包名.类名/*;其中,import是关键字,包名1.包名为层次结构包名,用圆点.分隔每个包。*表示引入指定包中的所有的类。2直接使用类的访问名直接使用类的访问名指出要引入,重用的类,类访问名包括层次结构包名和类名两部分:包名1.包名.类名,包,例如,在定义Time类继承com.juj.Time1类时,用两种方法引入Time1类:importcom.juj.Time1;classTimeextendsTime1;或classTimeextendscom.juj.Time1;,例7.5供重用的Point类,源程序在d:jujava中,编译存放在com.juj包中。packagecom.juj;publicclassPointprivateintx,y;/私有成员变量/重载的构造方法publicPoint()publicPoint(intx,inty)this.x=x;this.y=y;/其它成员方法publicvoidsetx(inta)x=a;publicintgetx()returnx;publicvoidsety(inta)y=a;publicintgety()returny;,将Point类编译,并存于classpath为c:j2sdk1.4.1_02jreclasses的com.juj包中,使用编译命令:D:jujavajavacdc:j2sdk1.4.1_02jreclassesPoint.java/MDPoint2.java主类,存放在无名包(即当前目录d:jujava)中。,importcom.juj.Point;publicclassMDPoint2publicstaticvoidmain(Stringargs)Pointa=newPoint();Pointp=newPoint(3,5);p.setx(6);System.out.println(p点间的x,y坐标为:+p.getx()+,+p.gety();System.out.println(a点间的x,y坐标为:+a.getx()+,+a.gety();,运行结果:p点间的x,y坐标为:6,5a点间的x,y坐标为:0,0,19,异常的基本概念,异常(Exception)是指应用程序在运行过程中发生的不正常情况,或发生错误(Error)。用任何计算机程序设计语言编写的程序,在运行过程中都不可避免地可能出现各种各样的异常现象。如被零除,数组下标超界,访问的文件或对象不存在,内存不够等等。程序运行中的异常可以预料但不可避免。,异常处理,20,异常的基本概念,Java将程序运行过程中发生异常抽象成类,每个异常类代表一个相应的异常,类中包含异常信息和异常处理方法。应用程序在运行过程中如果发生异常事件,Java虚拟机或正在运行程序捕获异常,创建并抛出一个异常对象,生成的异常对象将由JVM解析处理,称“抛出异常”机制,确保不会死机,从而保证系统的安全性。Java“抛出异常”机制将异常处理与正常程序分离,易于维护,程序更为简洁。,异常处理,21,Java中异常对象的类型和层次结构,在Java中所有的异常都是类Throwable的后继子类。类Throwable有两个直接子类:Error类和Exception类。Exception类的子类分两类:受检异常(checkedException)不受检异常(uncheckedRuntimeExceptionandError)。,异常处理,22,不受检异常,不受检异常有:java.lang.ArithmeticException算术运算异常,如被零除等java.lang.ArrayIndexOutOfBoundsException数组下标超界异常java.lang.StringIndexOutOfBoundsException字符串下标超界异常java.lang.ClassCastException类型转换异常java.lang.NegativeArraySizeException数组大小为负数异常,23,例77不受检异常的例子。classExceptionDemo0publicstaticvoidmain(Stringargs)inta=5,0,4,10;intm=100;doubled;for(inti=0;i0)System.out.println(平方根为:+x+,+Math.sqrt(x);,37,程序内部处理和外部处理两者结合和throw语句,异常的程序内部处理和外部处理两者结合,适用于自定义异常处理。我们把自定义异常视为受检异常,如果在方法中可能产生自定义异常,则自定义异常也必须列在方法声明的throws子句中,除非方法中使用try-Catch程序结构捕获。,异常处理,如果程序员觉得某个受检异常不可能发生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手车买卖合同协议书
- 商场专柜协议合同
- 水电合同协议模板
- 窗纱供货合同协议
- 四方协议合同范本
- 了断员工合同协议
- 私人合伙协议合同
- 供货合同补充协议书范本
- 协议转让房产合同怎么写
- 个人让利协议合同
- 普通冲床设备日常点检标准作业指导书
- DBT29-265-2019 天津市市政基础设施工程资料管理规程
- -城乡规划法-最新课件
- DB44∕T 1188-2013 电动汽车充电站安全要求
- DB32T 4013-2021 第三方社会稳定风险评估技术规范
- 环网柜出厂检验规范标准
- 人教统编版高中语文必修下册第八单元(单元总结)
- 第三章卫星运动基础与GPS卫星星历
- 三年级美术下册 第12课《班级小报》课件1 浙美版
- 客户信用等级评价表
- 中国各省份分地市地图(矢量图)
评论
0/150
提交评论