第04章接口、内部类和包.ppt
《第04章接口、内部类和包.ppt》由会员分享,可在线阅读,更多相关《第04章接口、内部类和包.ppt(48页珍藏版)》请在三一办公上搜索。
1、Java2程序设计实用教程(第2版),第4章 接口、内部类和包,4.1 接口4.2 内部类4.3 包4.4 Java API基础,4.1 接口,4.1.1 接口与实现接口的类4.1.2 用接口实现多重继承,4.1.1 接口与实现接口的类,声明接口public interface 接口 extends 父接口 public static final 数据类型 成员变量=常量值;public abstract 返回值类型 成员方法(参数列表);例如,public interface Plane1/平面图形接口 public abstract double area();/计算面积,2.声明实现接口
2、的类,修饰符 class 类 extends 父类 implements 接口列表例如,public class Rectangle2 implements PlaneGraphics2,3.接口的作用,接口与类相似是Java的一种高级编程机制是一组常量定义和抽象方法定义的集合作用利用接口,在Java中可实现多重继承利用接口可以实现不相关类的相同行为,而不考虑这些类之间的层次关系通过接口可以指明多个类需要实现的方法,了解对象的交互性界面,而不必了解对象所对应的类,4.理解接口,接口的思想在于它可以增加很多类都需要实现的功能,使用相同的接口类不一定有继承关系.同一个类也可以实现多个接口。接口只关
3、心功能,并不关心功能的具体实现.,5.接口回调,接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法.类似于子类对象赋给父类变量,调用的实际是子类的方法。,图4.1 图形接口与实现图形接口的类,【例4.1】图形接口与实现图形接口的类。,设计平面图形接口PlaneGraphics2。设计长方形类Rectangle2,实现平面图形接口。,6.接口的特点,接口及接口中成员的访问权限都是public接口中的成员方法都是公有的、抽象的实例成员方法接口
4、中的所有抽象方法必须全部被实现接口的类覆盖接口中的成员变量都是常量接口不能被实例化接口是引用数据类型 PlaneGraphics2 g1=new Rectangle2(10,20);,4.1.2 用接口实现多重继承,一个类可以继承一个父类并实现多个接口图4.2 继承机制,【例4.2】长方体类继承长方形类并实现立体图形接口。,设计立体图形接口SolidGraphics2。设计长方体类Cuboid1,继承长方形类并实现立体图形接口。长方体类Cuboid1中必须再次覆盖area()和print()方法。计算周长方法存在问题。,图4.3 长方体类的多重继承,【例4.3】球类实现多个接口。,图4.4 球
5、类的多重继承,7.接口的继承,图4.5 接口的继承,8.接口与抽象类的区别,相同点:两者都包含抽象方法。两者都不能被实例化。两者都是引用数据类型。不同点:抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和默认两种,接口中成员的访问权限均是public。抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法全部是抽象方法,不能声明构造方法。抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。
6、,4.Java用接口实现多重继承比C+多重继承的优越之处,图4.6 Java单重继承时执行父类或祖先类中的方法,4.2 内部类,声明内部类public class Line/直线类,外部类 protected Point p1,p2;/直线的起点和终点 protected class Point/点类,内部类 protected int x,y;/内部类的成员变量 protected Point(int x,int y)/内部类的构造方法 this.x=x;this.y=y;,2.内部类特性,内部类的类特性内部类不能与外部类同名。内部类具有封装性。内部类具有继承性。内部类具有抽象性。内部类的成
7、员特性使用点运算符“.”引用内部类。例如:Line.Point内部类具有4种类中成员的访问权限。内部类具有静态特性。,【例4.4】设计点类作为直线类的内部类。,设计一个接口Direction,其中约定表示左、右、上、下4个方向的4个常量。设计点类作为直线类的内部类,点类实现方向接口。声明和使用接口中常量声明和调用内部类的成员方法内部类Point编译生成字节码的文件名为Line$Point.class。,图4.7 以(100,100)为起点的4个方向的4条直线,4.3 包,4.3.1 包的概念4.3.2 创建、声明和导入包,4.3.1 包的概念,问题的提出什么是包从逻辑概念看,包(package
8、)是类的集合,一个包中包含多个类;从存储概念看,包是类的组织方式,一个包对应一个文件夹,一个文件夹中包含多个字节码文件;包与类的关系,就像文件夹与文件的关系一样。包中还可以再有子包,称为包等级,子包对应一个子文件夹。,4.3.2 创建、声明和导入包,创建与包同名的文件夹set classpath=.;C:Program FilesJavajdk1.5.0lib;C:myjava声明类所在的包package 包1.包2;例如,package mypackage;/声明所在的包public interface PlaneGraphics2引用包中的类包1.包2.类|接口,4.3.2 创建、声明和导
9、入包,导入包import 包1.包2.类|接口|*;import mypackage.PlaneGraphics2;默认包路径:当前文件夹 包之间类及类中成员的访问权限包中非内部的类或接口只有2种访问权限:public和缺省。在类中成员的4种访问权限中,public和private权限与包无关,而protected和缺省权限与包有关。,4.3.2 创建、声明和导入包,Java源程序结构package/声明包,01句import/导入包,0多句public class 或interface/声明公有类或接口,01句,文件名与该名相同class/声明默认类,0多句interface/声明接口,0多
10、句包可以压缩成文件jar.exe,4.4 Java API基础,4.4.1 Java提供的包概述4.4.2 java.lang语言包4.4.3 java.util实用包,4.4.1 Java提供的包概述,Java的常用包java.lang 语言包java.util 实用包java.awt 抽象窗口工具包java.appletjava.io 输入输出流包 网络包java.sqljavax.swing查看Java包中的类查看Java的源程序及包等级导入Java的包import java.util.Date;,4.4.2 java.lang语言包,Object类package java.lang;p
11、ublic class Object public Object()/构造方法 public final native Class getClass();/返回当前对象所在的类 public boolean equals(Object obj)/比较当前对象与obj是否相等 public String toString()/返回当前对象的信息字符串 protected void finalize()throws Throwable/析构方法,图4.13 Object类中equals()方法,2.Math数学类,public final class Math extends Object pri
12、vate Math()public static final double E=2.7182818284590452354;/常量 public static final double PI=3.14159265358979323846;public static double abs(double a)/求绝对值 public static double max(double a,double b)/最大值 public static double min(double a,double b)/最小值 public static double random()/返回一个0.01.0之间的随机
13、数,3.Comparable接口,public interface Comparable int compareTo(T o)/比较对象 其中,是Comparable接口的参数,表示一个类。,4.基本数据类型的包装类,8个Byte、Short、Integer、Long、Float、Double、Character、Boolean。public final class Integer extends Number implements Comparable public static final int MIN_VALUE=0 x80000000;/最小值常量,-231 public stati
14、c final int MAX_VALUE=0 x7fffffff;/最大值常量,231-1 public Integer(int value)/构造方法 public Integer(String s)throws NumberFormatException public static int parseInt(String s)throws NumberFormatException/将字符串转换为整数,静态方法 public boolean equals(Object obj)/覆盖Object类中方法 public String toString()/覆盖Object类中方法 publ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第04章 接口、内部类和包 04 接口 部类
链接地址:https://www.31ppt.com/p-4873681.html