第6章包、接口和异常.ppt
《第6章包、接口和异常.ppt》由会员分享,可在线阅读,更多相关《第6章包、接口和异常.ppt(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章 包、接口和异常包、接口和异常主要任务介绍Java中包(package)、接口(interface)和异常处理(exception)的使用方法。1本章主要内容1.包2.接口3.异常处理26.1 包包Java要求文件名与类名相同,将多个类放在一起时,要保证类名不能重复。当声明的类很多时,类名就有可能冲突,这就需要一种机制来管理类名,这就是包。包是Java提供的一种区别类名空间的机制,是类的组织方式,一个包对应一个文件夹,包中还可以有包,称为包等级。如同文件夹中可以有子文件夹。在源程序中可以声明类所在的包,就像保存文件时要说明文件保存在哪个文件夹中一样。同一个包中类名不能重复,不同包中可
2、以有相同的类名。当源程序中没有声明类所在的包时,Java将类放在默认包中,即运行编译器的当前文件夹中。这时,不能出现重复的类名。36.1.1 Java的系统包的系统包Java提供了大量的类,为便于管理和使用,分为不同的包。包又称类库或API包,所谓API(ApplicationProgramInterface)即应用程序接口。API包方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,把用户程序的功能圆满实现。所有JavaAPI包都以“java.”开头,以区别用户创建的包。41java.lang包java.lang包中包含有以下的主要类:数据类型包装类,对
3、应8个基本数据类型,数据类型包装类也有8个:BigDecimal、BigInteger、Byte、Double、Float、Integer、Long、Short。提供基本数学函数的Math数学类。用于字符串处理的String类和StringBuffer类。System系统类。提供访问系统资源和标准输入输出的方法。Object类。它是Java类层次的根,所有其它的类都是由Object类派生出来的。52java.util包包含一些低级的实用工具类。这些实用工具类使用方便,而且很重要。主要有:日期Date类、堆栈Stack类、随机数Random类、向量Vector类等。63java.io包是Java
4、语言的输入输出类库,Java语言的文件操作都是由该类库中的输入输出类来实现的。此外该类库还提供了一些与其它外部设备交换信息的类。java.io包除了包含标准输入、输出类外,还有缓存流、过滤流、管道流和字符串类等。包含有访问网上资源的URL类,用于通讯的Sockt类和网络协议子类库等。Java语言是一门适合分布式计算环境的程序设计语言,网络类库正是为此设计的。其核心就是对Internet协议的支持,目前该类库支持多种Internet协议,包括HTTP、Telnet、FTP等等。85java.awt包提供了创建图形用户界面的全部工具。它包括许多我们熟悉的图形组件(component)类,如窗口、对
5、话框、按钮、复选框、列表、菜单、滚动条和文本区等类;用于管理组件排列的布局管理器Layout类;以及常用的颜色Color类、字体Font类。java.awt.event类库用来处理各种不同类型的事件。96java.applet包java.applet是所有小应用程序的基础类库。它只包含了一个Applet类,所有小应用程序都是从该类中派生的。107java.security包包括java.security.acl和java.security.interfaces子类库,利用这些类可对Java程序进行加密,设定相应的安全权限等。11Java提供的最新内容,如图所示。12object类的所有方法和构
6、造方法,如图所示。136.1.2 包的引用包的引用1导入包语句在Java程序中是怎样告诉编译器使用哪些包中的类呢?在编写源程序时,如果要使用某个包中的类,要在Java程序的开头添加import语句,指明源程序要使用含有该类的包。如下面的语句:importjava.awt.Graphics;importjava.applet.*;142包的路径要引入Java包,仅在程序中添加import语句还不够,还要告诉系统,程序运行时到哪里去找Java包。这个功能由环境变量classpath来完成。由于Java使用文件系统来存储包和类,类名就是文件名,包名就是文件夹名,所以进行环境变量的设置就是找到存放包的
7、路径,如“E:j2sdk1.4.2_01lib;”。156.1.3 创建自定义包创建自定义包1自定义包的声明方式要建立自定义包,要使用声明包语句。格式为:声明包语句必须添加在源程序的第一行,表示该文件的全部类都属于这个包。开发人员还可以在不同的文件中使用相同的声明包语句,这样就可将不同文件中的类都包含在相同的包中了,如同将不同的文件放在同一个文件夹中,以后其它类就可以引用这个包中创建好的类了。16例6.1在源程序YMD.java中,创建了YMD类,该类具有计算今年的年份,可以输出一个带有年月日的字符串的功能。packageMypackage;/声明了一个Mypackage包importjava
8、.util.*;/引用java.util包publicclassYMDprivateintyear,month,day;publicstaticvoidmain(Stringarg3)17publicYMD(inty,intm,intd)year=y;month=(m=1)&(m=1)&(d=31)?d:1);publicYMD()this(0,0,0);18publicstaticintthisyear()returnCalendar.getInstance().get(Calendar.YEAR);/获得当年的年份publicintyear()returnyear;/获得年份publicS
9、tringtoString()returnyear+-+month+-+day;/转化为字符串19例6.2本程序中,引用了例6.1创建的放入Mypackage包中的YMD类,使用YMD类类中的方法和P3类中的方法,给定某人的出生日期计算出该人年龄,并输出该人姓名,年龄,出生日期。importMypackage.YMD;/引用Mypackage包中的YMD类publicclassP3privateStringname;privateYMDbirth;publicstaticvoidmain(Stringargs)P3a=newP3(张驰,1990,1,11);a.output();20publi
10、cP3(Stringn1,YMDd1)name=n1;birth=d1;publicP3(Stringn1,inty,intm,intd)this(n1,newYMD(y,m,d);/初始化变量与对象21publicintage()returnYMD.thisyear()-birth.year();/计算年龄publicvoidoutput()System.out.println(姓名:+name);System.out.println(出生日期:+birth.toString();System.out.println(今年年龄:+age();22程序运行结果如图所示。第一个程序声明了自定义包
11、Mypackage,包中存放有YMD类。第二个程序引入了自定义包Mypackage中的类YMD。232设置包的路径首先在存放源程序的文件夹中使用自定义包名建立一个子文件夹,例如,在“E:java程序”文件夹之中创建一个与包同名的文件夹E:java程序Mypackage,并将编译过的class文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量classpath的路径如下:E:j2sdk1.4.2_01lib;E:java程序243创建包等级用圆点“.”可以将包名分隔为不同的包等级,即建立不同的文件夹。格式为:如java.awt.image就是一个等级包,反映Java开发系统的层
12、次关系,这个包对应Windows文件系统中的javaawtimage文件夹。如果要修改包名就要修改文件夹名。256.2 接口接口什么是接口?所谓接口可以看作是没有实现的方法和常量的集合。接口与抽象类相似,接口中的方法只是做了声明,而没有定义任何具体的操作方法。使用接口是为了解决Java语言中不支持多重继承的问题。266.2.1 实现系统提供的接口实现系统提供的接口Java已经创建了许多系统接口,如MouseListener和MouseMotionListener接口,定义了处理鼠标事件的方法,当一个类实现这两个接口后,就可以处理这些鼠标事件。在接口中的方法只有定义没有实现。在接口中定义的变量全
13、部隐含为final和static,表明这些变量不能被实现接口方法的类改变,这些变量还必须设置初值。如果接口为public的,则接口中的方法和变量也全部为public,否则只能被处于同一包中的成员访问。27例6.3在类中实现MouseListener和MouseMotionListener两个接口。importjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;publicclassDrawLextendsAppletimplementsMouseListener,MouseMotionListenerintx1,y1,x2,y2
14、;28publicvoidinit()addMouseListener(this);addMouseMotionListener(this);publicvoidpaint(Graphicsg)g.drawL(x1,y1,x2,y2);publicvoidmousePressed(MouseEvente)/记录起点坐标x1=e.getX();y1=e.getY();29publicvoidmouseClicked(MouseEvente)publicvoidmouseEntered(MouseEvente)publicvoidmouseExited(MouseEvente)publicvoid
15、mouseReleased(MouseEvente)publicvoidmouseDragged(MouseEvente)/记录终点坐标x2=e.getX();y2=e.getY();repaint();publicvoidmouseMoved(MouseEvente)30在DrawL类中实现了MouseListener接口中定义的5个方法:publicvoidmousePressed(MouseEvente)/记录起点坐标x1=e.getX();y1=e.getY();publicvoidmouseClicked(MouseEvente)publicvoidmouseEntered(Mous
16、eEvente)publicvoidmouseExited(MouseEvente)publicvoidmouseReleased(MouseEvente)31实现MouseMotionListener接口的两个方法:publicvoidmouseDragged(MouseEvente)/记录终点坐标x2=e.getX();y2=e.getY();repaint();publicvoidmouseMoved(MouseEvente)326.2.2 创建自定义接口创建自定义接口创建自定义接口要使用声明接口语句,格式如下:修饰符/静态常量及方法声明33例6.4_1在下面的程序中声明了一个自定义接口
17、Nl。用来计算一个人年龄interfaceNl/年龄接口intyear=2003;intage();voidoutput();说明:在Nl接口中声明了两个方法:age()和output()以及一个整型常量year。34例6.4_2实现接口Nl的例子。publicclassR1implementsNl/实现年龄接口Stringxm;intcsrq;/类自己的成员变量publicR1(Stringn1,inty)/类构造方法xm=n1;csrq=y;publicintage()/实现接口的方法returnyear-csrq;/这里直接使用了接口的常量year35publicvoidoutput()
18、/实现接口的方法System.out.println(this.xm+今年的年龄是+this.age()+岁);publicstaticvoidmain(Stringargs)/类自己的成员方法R1a=newR1(张驰,1990);a.output();36程序运行结果如图所示:376.2.3 接口的继承关系接口的继承关系1接口的单继承2接口的多重继承38例6.5接口的单继承。interfaceAvoidF1();interfaceBextendsAvoidF2();说明:接口B将继承接口A中的所有变量和方法,这种接口之间的继承称为单继承。接口之间的继承与类的继承一样使用关键字extends。
19、39例6.6在类中引用继承的接口的方法。classMyClassimplementsBvoidF1()voidF2()说明:在这个例子中MyClass实现了接口B,因为接口B继承了接口A,所以接口B实际上还包含了接口A中的方法F1。因此在类MyClass中必须实现接口A中的方法F1和接口B中的方法F2。402接口的多重继承在Java语言中,不支持类的多重继承。但是支持接口的多重继承,其语法格式如下:interface接口名extends接口名1,接口名2,可见接口的多重继承只是在单继承的基础上再加上几个接口,并把这些接口用逗号分隔开。416.3 异常处理异常处理本节介绍Java的异常处理机制。
20、异常是用来处理程序错误的有效机制,以往需要由程序员完成的程序出错情况判别,在Java中改为由系统承担。通过系统抛出的异常,程序可以很容易地捕获并处理发生的异常情况。426.3.1 什么是错误与异常什么是错误与异常根据错误的性质将运行错误分为两种类型:1致命性错误2异常436.3.2 异常发生的原因异常发生的原因异常发生的原因有以下三种:1Java虚拟机检测到了非正常的执行状态2Java程序代码中的throw语句被执行。3异步异常发生。446.3.3 异常处理机制异常处理机制 Java提供了异常处理机制来处理异常。分为两个步提供了异常处理机制来处理异常。分为两个步骤:骤:1抛出异常抛出异常Jav
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 异常
限制150内