《java接口和包》PPT课件.ppt_第1页
《java接口和包》PPT课件.ppt_第2页
《java接口和包》PPT课件.ppt_第3页
《java接口和包》PPT课件.ppt_第4页
《java接口和包》PPT课件.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章 包、接口 主要任务 介绍Java中包(package)、接口( interface)的使用方法。 本章主要内容 l1.包 l2.接口 6.1 包 l当声明的类很多时,类名就有可能冲突,这就 需要一种机制来管理类名,这就是包。 l包是Java提供的一种区别类名空间的机制, 是类的组织方式,一个包对应一个文件夹,包 中还可以有包,称为包等级。如同文件夹中可 以有子文件夹。 6.1 包 l在源程序中可以声明类所在的包,就像保存文 件时要说明文件保存在哪个文件夹中一样。同 一个包中类名不能重复,不同包中可以有相同 的类名。 l当源程序中没有声明类所在的包时,Java将 类放在默认包中,即运行编译器的当前文件夹 中。这时,不能出现重复的类名。 6.1.1 Java的系统包 lJava提供了大量的类,为便于管理和使用, 分为不同的包。包又称类库或API包,所谓 API(Application Program Interface)即应 用程序接口。 l所有Java API包都以“java.”开头,以区别用 户创建的包。 1java.lang包 ljava.lang包中包含有以下的主要类: l 数据类型包装类,对应8个基本数据类型,数据类型 包装类也有8个:BigDecimal、BigInteger、Byte 、Double、Float、Integer、Long、Short。 l 提供基本数学函数的Math数学类。 l 用于字符串处理的String类和StringBuffer类。 l System系统类。系统资源和标准输入输出的方法。 l Object类。它是Java类层次的根。 2java.util包 l包含一些实用工具类。主要有:日期Date类 、堆栈Stack类、随机数Random类、向量 Vector类等。 3java.io包 l是Java的输入输出类库,Java语言的文件操 作都是由该类库中的输入输出类来实现的。 ljava.io包除了包含标准输入、输出类外,还 有缓存流、过滤流、管道流和字符串类等。 4java.awt包 l提供了创建图形用户界面的全部工具。它包括 许多我们熟悉的图形组件(component)类 ,如窗口、对话框、按钮、复选框、列表、菜 单、滚动条和文本区等类; 5java.applet包 ljava.applet是所有小应用程序的基础类库。 它只包含了一个Applet类,所有小应用程序 都是从该类中派生的。 Java提供的最新内容,如图所示。 6.1.2 包的引用 1导入包语句 l如果要使用某个包中的类,要在Java程序的 开头添加import语句,指明源程序要使用含 有该类的包。如下面的语句: import java.awt.Graphics; import java.applet.*; 2包的路径 l要引入Java包,仅在程序中添加import语句 还不够,还要告诉系统,程序运行时到哪里去 找Java包。这个功能由环境变量classpath来 完成。 l由于Java使用文件系统来存储包和类,类名 就是文件名,包名就是文件夹名,所以进行环 境变量的设置就是找到存放包的路径,如 “E:j2sdk1.4.2_01lib;”。 6.1.3 创建自定义包 1自定义包的声明方式 l要建立自定义包,格式为: l声明包语句必须添加在源程序的第一行,表示 该文件的全部类都属于这个包。 例6.1 在源程序YMD.java中,创建了YMD类,该类具有计算今 年的年份,可以输出一个带有年月日的字符串的功能。 package Mypackage; /声明了一个 Mypackage包 import java.util.*; /引用java.util包 public class YMD private int year,month,day; public static void main(String arg3) public YMD(int y,int m,int d) year = y; month = (m=1) import java.awt.*; import java.awt.event.*; public class DrawL extends Applet implements MouseListener, MouseMotionListener int x1, y1, x2, y2; public void init() addMouseListener(this); addMouseMotionListener(this); public void paint(Graphics g) g.drawL (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) 在DrawL类中实现了MouseListener接口中定义 的5个方法: 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) 实现MouseMotionListener接口的两个方法: public void mouseDragged(MouseEvent e) / 记录终点坐标 x2=e.getX(); y2=e.getY(); repaint(); public void mouseMoved(MouseEvent e) 6.2.2 创建自定义接口 l创建自定义接口要使用声明接口语句,格式如 下: 修饰符 / 静态常量及方法声明 例6.4_1 在下面的程序中声明了一个自定义接口Nl。 用来计算一个人年龄 interface Nl /年龄接口 int year = 2003; int age(); void output(); l说明:在Nl接口中声明了两个方法:age()和 output () 以及一个整型常量year。 例6.4_2 实现接口Nl的例子。 public class R1 implements Nl /实现年龄接口 String xm; int csrq; /类自己的成员变量 public R1(String n1,int y) /类构造方法 xm = n1; csrq = y; public int age() /实现接口的方法 return year - csrq; /这里直接使用了接口的 常量year public void output() /实现接口的方 法 System.out.println(this.xm +“今年的年 龄是“+ this.age()+“岁“); public static void main (String args) / 类自己的成员方法 R1 a = new R1(“张驰“,1990); a.output(); 程序运行结果如图所示 : 6.2.3 接口的继承关系 l1接口的单继承 l2接口的多重继承 例6.5 接口的单继承。 interface A void F1(); interface B extends A void F2(); 说明: 接口B将继承接口A中的所有变量和方法,这种 接口之间的继承称为单继承。接口之间的继承 与类的继承一样使用关键字extends。 例6.6 在类中引用继承的接口的方法。 class MyClass implements B void F1() void F2() 说明:在这个例子中MyClass实现了接口B,因为接口 B继承了接口A,所以接口B实际上还包含了接口A中 的方法F1。因此在类MyClass中必须实现接口A中 的方法F1和接口B中的方法F2。 2接口的多重继承 l在Java语言中,不支持类的多重继承。但是 支持接口的多重继承,其语法格式如下: interface接口名extends接口名1, 接口名2, l可见接口的多重继承只是在单继承的基础上再 加上几个接口,并把这些接口用逗号分隔开。 习 题 1包有什么作用?有哪些类型的包?创建一个 自己的包,包含四个类。 2接口有什么作用?创建一个接口并在类中实 现这个接口。 10下面的那个java源文件代码片断是对的,说出理 由。 A. package testpackage; public class Test/do something. B. import java.io.*;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论