第4章包、接口、类.

上传人:今*** 文档编号:107515083 上传时间:2019-10-19 格式:PPT 页数:67 大小:306KB
返回 下载 相关 举报
第4章包、接口、类._第1页
第1页 / 共67页
第4章包、接口、类._第2页
第2页 / 共67页
第4章包、接口、类._第3页
第3页 / 共67页
第4章包、接口、类._第4页
第4页 / 共67页
第4章包、接口、类._第5页
第5页 / 共67页
点击查看更多>>
资源描述

《第4章包、接口、类.》由会员分享,可在线阅读,更多相关《第4章包、接口、类.(67页珍藏版)》请在金锄头文库上搜索。

1、第4章 包、接口、类库,Java程序时类与接口的集合 可以将常用的类或功能相似的类放在一个软件包中。 编写程序仅仅依靠程序员自己设计类和接口是不行的,应大量地调用系统类库,4.1 包,Java 包机制 将相似的类和接口可以放在同一个包中集中管理 程序编译的类被放在包内,要访问类就要给出类所属的包名,来指明类是在哪一个包中,以便能够找到该类。一个包中有许多类,同时还可以有子包。Java语言的包可以被另一个Java开发包所使用 Java 包机制提供了树形结构的多层次命名空间,如java.lang.System.out.println 简单理解:包就是目录(目录不一定是包),4.1 包,4.1.1

2、包的声明 1包语句 package 包名1.包名2.包名3; 包的声明语句必须放在程序源文件的开始,前面如果包括语句,只能是注释语句。 Java规定,任何一个源文件最多只能有一个包声明语句,包名全部用小写 包名前可以带路径,形成多层次命名空间 包的名字有层次关系,各层之间用点分隔,4.1 包,4.1.1 包的声明 1包语句 要使用包,首先创建一个子目录,然后将源程序放在该子目录中,编译源程序后,生成的字节码文件即在该包中。,4.1 包,2包声明示例 package family; class Parents class Son class Daughter interface Work 上述程

3、序经过编译,就可以建立程序包family,package family; public class Parents String father=“张三“,mother=“李四“; public void displayParentsName() System.out.println(“父亲的名字是:“+father); System.out.println(“母亲的名字是:“+mother); class Son String name=“张三四“; void displaySonName() System.out.println(“儿子的名字是:“+name); class Daughter

4、 String name=“张三五“; void displayDaughterName() System.out.println(“女儿的名字是:“+name); ,4.1 包,/引用上页中建立的包中的类 import family.*; public class my public static void main(String args) Parents p=new Parents(); p.displayParentsName(); / Son s=new Son(); /出问题吗? / s.displaySonName(); ,/保存为Parents.java package fam

5、ily; public class Parents String father=“张三“,mother=“李四“; public void displayParentsName() System.out.println(“父亲的名字是:“+father); System.out.println(“母亲的名字是:“+mother); ,/保存为Son.java package family; public class Son String name=“张三四“; void displaySonName() System.out.println(“儿子的名字是:“+name); class Dau

6、ghter String name=“张三五“; void displayDaughterName() System.out.println(“女儿的名字是:“+name); ,4.1 包,/引用上页中建立的包中的类 import family.*; public class my public static void main(String args) Parents p=new Parents(); p.displayParentsName(); Son s=new Son(); s.displaySonName(); / Daughter d=new Daughter(); /出问题?

7、/ d.displayDaughterName(); ,4.1 包,/多层次包的建立 package ha.zz.zzdx; public class my public static void main(String args) new Test().print(); class Test /前面需要加public吗? public void print() System.out.println(“这个程序用于建立包的多层结构!“); ,4.1 包,上例中的两个类均位于包ha.zz.zzdx中,完整名称为ha.zz.zzdx.my和ha.zz.zzdx.Test 同一包中的类相互访问,不需指

8、明包;如果从外部访问包中的类,则需使用完整的类名称 包的存放位置与包层次中对应的目录结构一致 如果上述文件my.java存放在d:java,则编译产生的my.class和Test.class必须在d:javahazzzzdx中,且将d:java放置在classpath中 包的产生方法: javac d . my.java (my.java在当前目录中,即ha的父目录) 或者从当前目录开始逐级建立子目录,将my.java复制到zzdx中, 并在zzdx中编译my.java 上例的执行方法: java ha.zz.zzdx.my,建议使用第二种方法产生包,4.1 包,4.1.2 包的引用 包引入i

9、mport语句的格式是: import 包名1.包名2.包名3 (.类名|*); 一个程序中可以导入多个包,每个包都要用一条import语句导入 一个import语句只能引入一个包,且不能自动引入下级包 一个程序中可以有多条import语句,4.1 包,4.1.2 包的引用 package ha.zz.zzdx; /在上面生成的包中再添一个类 public class Add public int add(int a,int b) /构造方法? return a+b; ,4.1 包,4.1.2 包的引用 import ha.zz.zzdx.*; /引入上面建立的包 public class m

10、y public static void main(String args) Add test = new Add() ; System.out.println(test.add(5,8); ,4.1 包,4.1.2 包的引用 一个程序中可导入多个包,每个import语句只能导入一个包 包可以压缩形式(.jar)存储在某个目录中 java.lang不需要导入,可直接使用其中的类 使用import导入某个包中的所有类(用*)时不会自动导入子包中的类,子包中的类需要另外用import导入: import java.awt.*; import java.awt.event.*;,4.1 包,4.1.

11、2 包的引用 包可以压缩形式(.jar)存储在某个目录中 用法(以上面建立的ha.zz.zzdx包为例): jar cf myp.jar ha/ (生成打包文件myp.jar) 可将myp.jar放在任意目录下,并添加到classpath中 在应用程序中导入ha.zz.zzdx包,即可使用其中的类,42 接口,接口是方法定义和常量值的集合 接口只含常量和方法的定义,不含变量和方法的实现 使用接口可以实现多重继承,42 接口,4.2.1 接口的声明 修饰符 interface 接口名 /常量和方法声明 Java编译系统会自动把声明的变量当做public static final类型的变量(即常量

12、)来处理 接口中的变量必须初始化,且不能在实现类中被修改 接口中的方法默认为public abstract 接口的修饰符只有访问控制修饰符,含义同类的访问控制修饰符,42 接口,public interface Range int MIN=0; int getMaxValue(); void setMaxValue(int maxValue); ,42 接口,4.2.2 接口的继承 和类相同,接口可以实现继承,一个接口可以继承父接口的所有成员 interface FirstInterface void ff1(); interface SecondInterface extends First

13、Interface void ff2(); 可以通过如下定义方式实现接口的多重继承: interface 接口名 extends 接口名1,接口名2,接口名3,42 接口,4.2.3 接口的实现 在类声明时,利用implements子句来表示一个类使用了某个接口,也就是说实现了某个接口 一个类可以implements多个接口,这些接口以逗号分隔。 在类中可以使用接口中定义的常量,但必须实现接口中定义的所有方法 格式是: class 类名 implements 接口名列表 例: class MyClass implements Range ,interface computeArea int a

14、=5; void set_size(double s1,double s2); double get_area(); class Triangle implements computeArea double bottom,height; public void set_size(double size1,double size2) bottom=size1;height=size2; public double get_area() return(bottom*height/2); class Rectangle implements computeArea double length,wid

15、th; public void set_size(double size1,double size2) length=size1;width=size2; public double get_area() return(length*width); ,public class my public static void main(String args) Triangle tt=new Triangle(); Rectangle rr=new Rectangle(); tt.set_size(3,4); System.out.println(“三角形的面积是:“+tt.get_area(); rr.set_size(5,6); System.out.println(“矩形的面积是:“+rr.get_area(); ,abstract class Figure double x,y; void set_size(double s1,double s2) x=s1; y=s2; abstract double get_area(); class Triangle extends Figure double get_area() return(x

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号