您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 实训项目五-包、接口练习
实训项目五:包、接口练习一、实训目的1)了解Java中包(package)、接口(interface);2)掌握包、接口的设计方法。二、实训要求1.了解Java系统包的结构。2.掌握创建自定义包的方法。3.掌握使用系统接口的技术和创建自定义接口的方法。三、实验内容(一)了解并使用Java的系统包1.API包、接口的作用包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java语言提供系统包,其中包含了大量的类,可以在编写Java程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库或API包,所谓API(ApplicationProgramInterface)即应用程序接口。API包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有JavaAPI包都以“java.”开头,以区别用户创建的包。接口解决了Java不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。2.上网浏览JavaAPI文档在地址上,可以看到Java系统提供的JavaAPI文档,类文档的内容主要是:类层次、类及用途描述、成员变量列表、构造方法列表、成员方法列表、从类层次上继承的方法列表、成员变量的详细说明、构造方法详细说明、成员方法详细说明。在这里可以看到Java提供的JavaAPI文档的最新内容。在右上方选择Class标题,并在左下角框中移动滑块,选择object类,可以看到object类的所有方法和构造方法。3.了解Applet类的方法。(二)创建并使用自定义包1.自定义包的声明方式package自定义包名声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。2.创建自定义包Mypackage在存放源程序的文件夹中建立一个子文件夹Mypackage。例如,在“E:\java\程序”文件夹之中创建一个与包同名的子文件夹Mypackage(E:\java\程序\Mypackage),并将编译过的class文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量classpath的路径,例如:E:\j2sdk1.4.2_01\lib;E:\java\程序3.在包中创建类(1)YMD.java程序功能:在源程序中,首先声明使用的包名Mypackage,然后创建YMD类,该类具有计算今年的年份,可以输出一个带有年月日的字符串的功能。(2)编写YMD.java文件,源代码如下。packageMypackage;//声明存放类的包importjava.util.*;//引用java.util包publicclassLX4_1_YMD{privateintyear,month,day;publicstaticvoidmain(String[]arg3){}publicLX4_1_YMD(inty,intm,intd){year=y;month=(((m=1)&(m=12))?m:1);day=(((d=1)&(d=31))?d:1);}publicLX4_1_YMD(){this(0,0,0);}publicstaticintthisyear(){returnCalendar.getInstance().get(Calendar.YEAR);//返回当年的年份}publicintyear(){returnyear;//返回年份}publicStringtoString(){returnyear+-+month+-+day;//返回转化为字符串的年-月-日}}(3)编译LX4_1_YMD.java文件,然后将LX4_1_YMD.class文件存放到Mypackage文件夹中。3.编写使用包Mypackage中LX4_1_YMD类的程序(1)LX4_2.java程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了LX4_1_YMD的方法来计算年龄。(2)编写LX4_2.java程序文件,源代码如下。importMypackage.LX4_1_YMD;//引用Mypackage包中的LX4_1_YMD类publicclassLX4_2{privateStringname;privateLX4_1_YMDbirth;publicstaticvoidmain(Stringargs[]){LX4_2a=newLX4_2(张驰,1990,1,11);a.output();}publicLX4_2(Stringn1,LX4_1_YMDd1){name=n1;birth=d1;}publicLX4_2(Stringn1,inty,intm,intd){this(n1,newLX4_1_YMD(y,m,d));//初始化变量与对象62}publicintage()//计算年龄{returnLX4_1_YMD.thisyear()-birth.year();//返回当前年与出生年的差即年龄}publicvoidoutput(){System.out.println(姓名:+name);System.out.println(出生日期:+birth.toString());System.out.println(今年年龄:+age());}}(3)编译并运行程序。(三)使用接口技术1.接口的定义与作用接口可以看作是没有实现的方法和常量的集合。接口与抽象类相似,接口中的方法只是做了声明,而没有定义任何具体的操作方法。使用接口是为了解决Java语言中不支持多重继承的问题。单继承可使语言本身结构简单,层次清楚,易于管理,安全可靠,避免冲突。但同时限制了语言的功能。为了在实际应用中实现多重继承的功能,Java使用了接口技术,一个类可以实现多个接口以达到使用公用常量和一些常用的方法。2.实现MouseListener和MouseMotionListener两个接口(1)编写实现接口的程序文件LX4_3.java,源代码如下。importjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;63publicclassLX4_3extendsAppletimplementsMouseListener,MouseMotionListener{intx1,y1,x2,y2;publicvoidinit(){addMouseListener(this);addMouseMotionListener(this);}publicvoidpaint(Graphicsg){g.drawLine(x1,y1,x2,y2);}publicvoidmousePressed(MouseEvente){//记录起点坐标x1=e.getX();y1=e.getY();}publicvoidmouseClicked(MouseEvente){}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseReleased(MouseEvente){}publicvoidmouseDragged(MouseEvente){//记录终点坐标x2=e.getX();y2=e.getY();repaint();}publicvoidmouseMoved(MouseEvente){}}(2)程序分析:从LX4_3类的声明语句中publicclassDrawLextendsAppletimplementsMouseListener,MouseMotionListener可以看到使用implements关键字实现了MouseListener和MouseMotionListener两个接口。在LX4_3类中还实现了MouseListener接口中定义的5个方法:1)publicvoidmousePressed(MouseEvente){//记录起点坐标x1=e.getX();64y1=e.getY();}2)publicvoidmouseClicked(MouseEvente){}3)publicvoidmouseEntered(MouseEvente){}4)publicvoidmouseExited(MouseEvente){}5)publicvoidmouseReleased(MouseEvente){}其中只是具体实现了mousePressed方法。其它都为空方法。还实现了MouseMotionListener接口的两个方法:1)publicvoidmouseDragged(MouseEvente){//记录终点坐标x2=e.getX();y2=e.getY();repaint();}2)publicvoidmouseMoved(MouseEvente){}注意:在实现接口时,要实现所有接口中定义的所有方法,方法的实现可以具有具体的实现内容,也可以是抽象的方法,即只有方法名或参数,没有变量、没有具体操作语句,只有一对大括号{}的空方法。(3)编译LX4_3.java文件。(4)编写LX4_3.html文件,源代码如下。htmlappletcodebase=e:/java/程序code=LX4_3.classwidth=320height=180/applet/html(5)在浏览器中打开LX4_3.html文件,在窗口中拖动鼠标可以随意画出一条线。(四)创建自定义接口1.创建自定义接口的语法格式如同使用包一样,程序员也可创建自定义接口。创建自定义接口要使用声明接口语句,格式如下:[修饰符]interface自定义接口名{…//静态常量及方法声明}2.创建自定义接口程序文件LX4_4_JK.java。(1)程序功能:在程序中声明一个自定义接口Nl,用来计算一个人年龄。(2)编写N1.java程序文件,源代码如下。interfaceLX4_4_JK{//定义接口intyear=2004;intage();voidoutput();}说明:在LX4_4_JK接口中声明了两个方法:age()和output()以及一个整型常量year。注意:接口名首字母要大写。3.编译LX4_4_JK.java程序文件,生成LX4_4_JK.class文件。以后其它类即可使用LX4_4_JK接口了。4.编写使用接口LX4_4_JK的程序文件LX4_5.java,源代码如下。publicclassLX4_5implementsLX4_4_JK{//实现接口Stringxm;//类自己的成员变量(姓名)intcsrq;//类自己的成员变量(出生日期)publicLX4_5(Stringn1,inty){//类构造方法xm=n1;csrq=y;}publicintage(){//实现接口的方法returnyear-csrq;//这里直接使用了接口中的常量year}publicvoidoutput(){//实现接口的方法System.out.println(this.xm+今年的年龄是+this.age()+岁);}publicstaticvoidmain(Stringargs[])//类自己的成员方法{LX4_5a=newLX4_5(张驰,1990);a.output();}}5.编译并运行程序。(五)练习1、为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007和Plane,其中Car007的速度运算公式为:A*B/C,Plane的速度运算公式为:A+B+C。需要编写三类:ComputeTime.java,Plane.java,Car007.java和接
本文标题:实训项目五-包、接口练习
链接地址:https://www.777doc.com/doc-5383456 .html