已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训项目五: 包、接口练习一、实训目的1)了解Java 中包(package)、接口(interface);2)掌握包、接口的设计方法。二、实训要求1. 了解Java 系统包的结构。2. 掌握创建自定义包的方法。3. 掌握使用系统接口的技术和创建自定义接口的方法。三、实验内容(一) 了解并使用Java 的系统包1 API 包、接口的作用包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统包,其中包含了大量的类,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库或API 包,所谓API(Application Program Interface)即应用程序接口。API 包方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 包都以“java.”开头,以区别用户创建的包。接口解决了Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。2上网浏览Java API 文档在地址/j2se/1.4.2/docs/api/index.html 上,可以看到Java 系统提供的Java API 文档,类文档的内容主要是:类层次、类及用途描述、成员变量列表、构造方法列表、成员方法列表、从类层次上继承的方法列表、成员变量的详细说明、构造方法详细说明、成员方法详细说明。在这里可以看到Java 提供的Java API 文档的最新内容。在右上方选择Class 标题,并在左下角框中移动滑块,选择object 类,可以看到object 类的所有方法和构造方法。3了解Applet 类的方法。(二) 创建并使用自定义包1自定义包的声明方式 声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。2创建自定义包Mypackage在存放源程序的文件夹中建立一个子文件夹Mypackage。例如,在“E:java程序”文件夹之中创建一个与包同名的子文件夹Mypackage(E:java程序Mypackage),并将编译过的class 文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量classpath 的路径,例如:E:j2sdk1.4.2_01lib; E:java程序3在包中创建类(1)YMD.java 程序功能:在源程序中,首先声明使用的包名Mypackage,然后创建YMD 类,该类具有计算今年的年份,可以输出一个带有年月日的字符串的功能。(2)编写YMD.java 文件,源代码如下。package Mypackage; /声明存放类的包import java.util.*; /引用java.util 包public class LX4_1_YMD private int year,month,day;public static void main(String arg3)public LX4_1_YMD(int y,int m,int d) year = y;month = (m=1) & (m=1) & (d=31) ? d : 1);public LX4_1_YMD() this(0,0,0);public static int thisyear() return Calendar.getInstance().get(Calendar.YEAR);/返回当年的年份public int year() return year;/返回年份public String toString()return year+-+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 程序文件,源代码如下。import Mypackage.LX4_1_YMD; /引用Mypackage 包中的LX4_1_YMD 类public class LX4_2private String name;private LX4_1_YMD birth;public static void main(String args)LX4_2 a = new LX4_2(张驰,1990,1,11);a.output();public LX4_2(String n1,LX4_1_YMD d1)name = n1;birth = d1;public LX4_2(String n1,int y,int m,int d)this(n1,new LX4_1_YMD(y,m,d);/初始化变量与对象62public int age() /计算年龄return LX4_1_YMD.thisyear() - birth.year(); /返回当前年与出生年的差即年龄public void output()System.out.println(姓名 : +name);System.out.println(出生日期: +birth.toString();System.out.println(今年年龄 : +age();(3)编译并运行程序。(三) 使用接口技术1接口的定义与作用接口可以看作是没有实现的方法和常量的集合。接口与抽象类相似,接口中的方法只是做了声明,而没有定义任何具体的操作方法。使用接口是为了解决Java 语言中不支持多重继承的问题。单继承可使语言本身结构简单,层次清楚,易于管理,安全可靠,避免冲突。但同时限制了语言的功能。为了在实际应用中实现多重继承的功能,Java 使用了接口技术,一个类可以实现多个接口以达到使用公用常量和一些常用的方法。2实现MouseListener 和MouseMotionListener 两个接口(1)编写实现接口的程序文件LX4_3.java,源代码如下。import java.applet.Applet;import java.awt.*;import java.awt.event.*;63public class LX4_3 extends Applet implements MouseListener, MouseMotionListener int x1, y1, x2, y2;public void init() addMouseListener(this);addMouseMotionListener(this);public void paint(Graphics g) g.drawLine (x1, y1, x2, y2);public void mousePressed(MouseEvent e) / 记录起点坐标x1=e.getX();y1=e.getY();public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseDragged(MouseEvent e) / 记录终点坐标x2=e.getX();y2=e.getY();repaint();public void mouseMoved(MouseEvent e) (2)程序分析:从LX4_3 类的声明语句中public class DrawL extends Applet implements MouseListener, MouseMotionListener可以看到使用implements 关键字实现了MouseListener 和MouseMotionListener 两个接口。在LX4_3 类中还实现了MouseListener 接口中定义的5 个方法:1)public void mousePressed(MouseEvent e) / 记录起点坐标x1=e.getX();64y1=e.getY(); 2)public void mouseClicked(MouseEvent e) 3)public void mouseEntered(MouseEvent e) 4)public void mouseExited(MouseEvent e) 5)public void mouseReleased(MouseEvent e) 其中只是具体实现了mousePressed 方法。其它都为空方法。还实现了MouseMotionListener 接口的两个方法:1)public void mouseDragged(MouseEvent e) / 记录终点坐标x2=e.getX();y2=e.getY();repaint(); 2) public void mouseMoved(MouseEvent e) 注意:在实现接口时,要实现所有接口中定义的所有方法,方法的实现可以具有具体的实现内容,也可以是抽象的方法,即只有方法名或参数,没有变量、没有具体操作语句,只有一对大括号的空方法。(3)编译LX4_3.java 文件。(4)编写LX4_3.html 文件,源代码如下。(5)在浏览器中打开LX4_3.html 文件,在窗口中拖动鼠标可以随意画出一条线。(四) 创建自定义接口1创建自定义接口的语法格式如同使用包一样,程序员也可创建自定义接口。创建自定义接口要使用声明接口语句,格式如下:修饰符 / 静态常量及方法声明2创建自定义接口程序文件LX4_4_JK.java。(1)程序功能:在程序中声明一个自定义接口Nl,用来计算一个人年龄。(2)编写N1.java 程序文件,源代码如下。interface LX4_4_JK /定义接口int year = 2004;int age();void output();说明:在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,源代码如下。public class LX4_5 implements LX4_4_JK /实现接口String xm; /类自己的成员变量(姓名)int csrq; /类自己的成员变量(出生日期)public LX4_5(String n1,int y) /类构造方法xm = n1;csrq = y;public int age() /实现接口的方法return year - csrq; /这里直接使用了接口中的常量yearpublic void output() /实现接口的方法System.out.println(this.xm +今年的年龄是+ this.age()+岁);public static void main (String args) /类自己的成员方法LX4_5 a = new LX4_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和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下: 计算Plane的时间:java ComputeTime Plane 20 30 40 计算Car007的时间:java ComputeTime Car007 23 34 45 如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:java ComputeTime Ship 22 33 44 提示:充分利用接口的概念,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品安全保障计划承诺书(6篇)
- 企业财务预算编制标准流程模板
- 2025年农业行业农业物联网与智能农业发展研究报告及未来发展趋势预测
- 2025年旅游酒店行业度假酒店与旅游休闲研究报告及未来发展趋势预测
- 企业沟通平台搭建工具集
- 2025年农产品行业农产品溯源技术应用案例解析报告
- 企业资源调配协调活动全程指导模板
- 贵州考医院护理三基题库及答案解析
- 华为派遣工岗前考试及答案解析
- 2025年芯片产业行业半导体技术与芯片设计研究报告及未来发展趋势预测
- 2025广西壮族自治区农业农村厅直属事业单位公开招聘128人笔试带答案
- Unit 3 Our animal friends 考点13:排序题-牛津译林版五年级英语上册核心考点培优练 (含答案解析)
- 诗词进大学校园活动方案
- (2025年)安全生产知识考试试题及答案
- 教室岗前培训理论考试及答案解析
- 二十届四中全会测试题及参考答案
- 华润燃气管理能力测评题库及答案详解
- 23G409先张法预应力混凝土管桩
- 建筑消防设施故障维修记录表
- 地下连续墙施工记录表
- 国家开放大学金融本科《成本管理》章节测试参考答案
评论
0/150
提交评论