面向对象Java语言程序设计——接口和程序包相关技术及应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(3)应用接口能够达到对API统一形式的调用
public class AppMain { public static void main(String[] args) { InterfaceShape[] shape = new InterfaceShape[3]; shape[0] = new ImpTriangle(3, 4, 5); shape[1] = new ImpCircle(5); shape[2] = new ImpRectangle(4, 5); for (int i = 0; i <= 2; i++) { System.out.println("面积=" + shape[i].getArea()); System.out.println(“周长=”+shape[i].getPerimeter()); } } }
本讲的简要回顾
1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之” 2、子曰:“知之者不如好之者,好之者不如乐之者”
3、子曰:“三人行,必有我师焉” 4、子曰:“我非生而知之者,好古,敏以求之者也” 5、师者:“传道、授业和解惑”
(6)Java中的包名称与目录之间的关系
Java编译器把包对应于文件系统的目录管理 package语句中,用.来指明目录的层次。
3、子曰:“三人行,必有我师焉” 4、子曰:“我非生而知之者,好古,敏以求之者也” 5、师者:“传道、授业和解惑”
3、接口定义格式 (1)要点 类似于类的定义格式,只是以interface作为定义符。 (2)定义的格式
(3)接口在编程应用方面的要点 接口(interface)作为特殊形式的抽象类(所有的 方法都为抽象方法),和类在使用上具有类似的约束 (作用域、命名等方面)。 但在继承方面与类不同,一个子接口可以继承多个不 同的父接口 一个public接口只能定义在同名的.java文件中
package myclass.graphics; 这条语句指定这个包中的文 件存储在目录 ./myclass/graphics 下。
(7)特殊的包:ng(语言包)
(8)典型常用的包
学员练习
根据如下关系定义出“组件”、 “基本组件”和“容器组件”所在的包名,并在其各自的包中 包含各个类的定义。 组件
4、成员属性变量(对象)的命名 (1)首字母要小写 (2)每个组合词的第一个字母大写 (3)提供set/get方法命名要符合JavaBean规范 (4)比如 firstName、userAge
本讲的简要回顾
1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之” 2、子曰:“知之者不如好之者,好之者不如乐之者”
(5)引用包 可以在一个包中使用另一个包中所定义的类和接口,这 可采用import 语句来实现。 引用包中的指定名称类:import 包名.类名; 引用包中的可用的类或接口: i导入一个包中包含有一个子包,那么import语句 是不会导入子包的。而且不能使用import java.*或者 import java.*.*来导入以java为前缀的所有包。 如果在导入的包中含有相同名字的类的话就需要在使 用的时候给出完整的包路径加上类名。
int currentCount ( );
}
6、实现接口时常见的编程错误 (1)必须实现接口中的所有方法
(2)在实现类中必须给出 方法体 (3)实现类中的方法原型 必须与接口中的对应方法 的定义保持一致性
7、实现接口与继承类的对比 (1)都能够实现动态多态 通过实现接口,可扩充或增加该类的功能(多个类可 以实现同一个接口) 一个类可以实现多个不同的接口 (2)与继承的不同点 接口的继承只是继承接口本身,而非代码,从而不会 产生重复继承多次。 定义出接口 8、应用接口的程序实例 (1)根据应用的功能进行抽象,定义出接口
4、接口定义时常见的错误 (1)接口中可以定义属性,但必须要对它初始化赋值
(2)接口中的所有成员必须为public类型的成员
(3)接口中的所有成员方 法必须为抽象方法,不能有 方法体 5、实现接口中的方法 (1)通过类才能实现接口,同时采用implements来指明所 要实现的接口名 (2)基本的要求:在该实现类中重写接口中的所有成员方 法,且给出成员方法体代码。 (3)代码示例
5、Java中的包
(3)作用 利用它可以实现将程序中的相关类和接口或子包组合 在一起,达到分块之目的,从而形成一个独立的外编 译单元。 一个包即为一个小型类库。 (4)包的定义 一般应该采用“反域名” package 包名; 如: 形式来命名 package myPackage; 注意:package语句作为Java源文件第一条语句,指明该文 件中定义的类所在的包;若缺省该语句,则指定为无名包
面向对象Java语言程序设计
——接口和程序包相关技术及应用
面向对象Java语言程序设计 ——接口和程序包相关技术及应用
希望重点掌握如下的知识点
Java中的接口 实现接口及基本要求 抽象类和接口的对比 Java中的包及命名规则
1、Java中的接口
(1)含义 一组只有成员方法原型定义而无成员方法定义体的方 法集。 接口定义了一组成员方法,但没有具体加以实现,其 实现则是由实现该接口的类来加以具体完成的。
(4)在什么场 合应该要应用 接口 在描述某一个问题时,如果不能给出任何的功能实现, 应该采用接口来描述。
10、接口的主要技术特性 (1)接口把方法的特征和方法的实现分割开来 这种分割体现在接口常常代表一个角色,它包装与该 角色相关的操作和属性,而实现这个接口的类便是扮演 这个角色的演员。 (2)接口是对方法的分组 一个角色由不同的演员来演,而不同的演员之间除 了扮演一个共同的角色之外,并不要求其它的共同之处 (3)接口是一种高度抽象的结构,可以很好地实现实体 之间的松耦合 但是接口只是协议的定义根本没有具体的实现。 基于该接口的实现类都需要把接口中定义的方法重写 一次,即使这些类中的大部分都是一样的功能实现,也 得重写。
实现所需要 的功能描述
(2)在设计PC机时实现它对接口“承诺”的功能的自己实 现
(3)Sun公司在Solaris机中实现它对接口“承诺”的功能 的自己实现
9、抽象类和接口的对比
“接口”体现对问题的设计, 而“实现类”体现该问题的具 ---达到设计与实现分 (1)“相似”但又有“区别”体实现 离
接口和类是很“相似”但又有“区别”的一种数据类 型,其设计和调用也是Java程序设计的一种重要技术。
本讲的简要回顾
1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之” 2、子曰:“知之者不如好之者,好之者不如乐之者”
3、子曰:“三人行,必有我师焉” 4、子曰:“我非生而知之者,好古,敏以求之者也” 5、师者:“传道、授业和解惑”
11、抽象类的技术特性 (1)利用基类与派生之间的继承关系可以实现代码的重 用 在基类中定义的公有代码能够在派生类中被直接地 调用。 (2)抽象类不仅可以达到接口实现的效果,还能实现类 继承关系的代码重用
(2)接口与抽象类在应用方面有如下的不同点 接口用interface来定义,而不是class,同时接口 中定义的变量全部是静态变量 接口中没有自身的构造方法,而定义的其他方法全 是抽象方法,即提供了方法的定义,但是没有提供 方法的实现。 接口可以采用多重继承而类不允许。
(3)在什么场合 应该应用抽象类 在描述某一个问题 时,如果只能给 出部分的功能实 现,而不能给出 全部的功能实现 时,应该采用抽 象类来描述。
interface Collection{ int MAX_NUM=100; void add (Object obj); void delete (Object obj); Object find (Object obj);
class FIFOQueue implements Collection { void add ( Object obj ) { } void delete( Object obj ){ } Object find( Object obj ) { } int currentCount(){ } }
(2)主要的作用 为若干个类(相关或无关的类)定义一组相同的功能 行为,从而达到相同的功能名称但不同的功能实现之 目的(实现动态多态); 另外也可以实现类似C++语言中的多重继承的效果但 又避免了虚基类的编程实现的复杂性。 2、接口的概念和应用
您了解C++语言中的纯 虚函数吗?
(1)应用的背景 在构建体现“问题”的类过程中,经常会遇到一种特殊 的情况---在描述某个类的各个方法时,对每个方法只能给 出其功能实现的要求(原形声明)但不能给出具体的功能 实现(方法的定义体)。 (2)为什么会出现这样的状况 因为待处理的问题只是一个“泛泛的功能说明”或者 “希望达到通用的解决”,并没有针对某一具体类型的问 题来说明或者实现。 注意: 接口实际上是为所有实现接口的类定义了一个“规则” 或一种“协议”,彻底的将“功能的目标”与“具体的 实现”相互分离开来; 可以达到对同一个“功能的目标”可以根据具体的应用 环境而提供多个不同的“具体的实现”!
基本组件 按钮 单选框 列表框 下拉列表框
容器组件 工具条 对话框 菜单条 窗口
6、熟悉Java编程中的命名规范
1、包的命名规范 (1)com.px1987.项目名.模块名 其中com.px1987 为企业域名翻转 (2)比如 com.px1987.webbank.view 2、类和接口的命名规范 (1)大写字母开头,要求“见名知意” (2)每个组合词的第一个字母大写 (3)比如 UserInfoDAOBean 用户信息数据访问组件 3、类和接口中的成员方法的命名规范 (1)动词+名词 (2)首字母小写 (3)比如doUserLogin(完成用户登陆处理)
学员练习一
1、正确设置前面的“人”问题中的“工作”接 口 2、“工作”接口中包含有如下 的行为定义 沟通 职位升迁 完成任务指标 学员练习二
1、正确设置前面的“计算机”问题中的“通讯”接口 2、“通讯”接口中包含有如下的行为定义 接收数据 发送数据 转换数据
中称为 (1)含义:它是一系列类和接口的集合 “命名空间” (2)为什么要提供包 由于Java编译器为每个类生成一个字节码文件,且文 件名与类名相同,因此同名的类有可能发生字节码文 件冲突从而产生相互覆盖。 为了解决这一问题,Java提供包来管理类名空间。因 为一个包中的符号名如类名、接口名等不能重名;不 同的包之间可以允许有同名的符号出现
相关文档
最新文档