(3)协议 协议是一个对象对外服务的说明,它声明这个 对象可以为外界做什么。它是由一个对象能够接受 并且意接受的所有信息构成的对外撂也就是 对 提供的消息进行的 界对象能够并且只能根据该对象发送协议中 所提供的消息,请求该对象服务。即使一个对象可 以完成某个功能,但它没有将该功能放入协议中 外界对象依然不 求它完成这个功能。协议实际 上是一个对象所能接受的所有公有消息的集合。 杜永林 第七章面向对象的系统开发
杜永林 第七章 面向对象的系统开发 21 (3)协议 协议是一个对象对外服务的说明,它声明这个 对象可以为外界做什么。它是由一个对象能够接受 并且愿意接受的所有信息构成的对外接口。也就是 说,请求对象进行操作的惟一途径就是通过协议中 提供的消息进行的。 外界对象能够并且只能根据该对象发送协议中 所提供的消息,请求该对象服务。即使一个对象可 以完成某个功能,但它没有将该功能放入协议中, 外界对象依然不能请求它完成这个功能。协议实际 上是一个对象所能接受的所有公有消息的集合
(4)面向对象系统的封装性 面向对象系统的封装性是一种信息隐藏技术。它使系 统设计员能够清楚地标明他们所提供的服务界面,用户 或应用程序员只能看见对象提供的操作功能,看不到其 中的数据或操作代码细节。从用户或应用程序员的角度 看,对象提供了一组服务,而服务的具体实现,即对象 的内部却被屏蔽封装着。 对象的这一封装机制的目的,在于将对象的使用者 与设计者分开。使用者不必知道对象行为实现的细节 只需用设计者提供的协议,命令对象去做即可。 面向对象系统中的封装单位为对象,即主要指对对象 的封装。类概念本身也是一种封装意义。 杜永林 第七章面向对象的系统开发
杜永林 第七章 面向对象的系统开发 22 (4)面向对象系统的封装性 面向对象系统的封装性是一种信息隐藏技术。它使系 统设计员能够清楚地标明他们所提供的服务界面,用户 或应用程序员只能看见对象提供的操作功能,看不到其 中的数据或操作代码细节。从用户或应用程序员的角度 看,对象提供了一组服务,而服务的具体实现,即对象 的内部却被屏蔽封装着。 对象的这一封装机制的目的,在于将对象的使用者 与设计者分开。使用者不必知道对象行为实现的细节, 只需用设计者提供的协议,命令对象去做即可。 面向对象系统中的封装单位为对象,即主要指对对象 的封装。类概念本身也是一种封装意义
2、继承性 继承( Inheritance)是面向对象系统中的另 个重要的概念。前面讨论了类,这些类是孤立的, 相互之间还没有建立关系。也就是说,这些类都处 在同一级别上,是一种平坦结构。这种没有建立相 交关系的平坦结构限制了面向对象系统的设计,因 为它不允许类之间实现信息共享。在系统中有些对 象,它们有些相同但又有些差别;如果不允许类之 间建立相交关系,这些不同对象的相似之处就无法 表现出来。 杜永林 第七章面向对象的系统开发
杜永林 第七章 面向对象的系统开发 23 2、继承性 继承(Inheritance)是面向对象系统中的另一 个重要的概念。前面讨论了类,这些类是孤立的, 相互之间还没有建立关系。也就是说,这些类都处 在同一级别上,是一种平坦结构。这种没有建立相 交关系的平坦结构限制了面向对象系统的设计,因 为它不允许类之间实现信息共享。在系统中有些对 象,它们有些相同但又有些差别;如果不允许类之 间建立相交关系,这些不同对象的相似之处就无法 表现出来
1)继承的引入 继承意味着“自动地拥有”。就是说,特殊类中不 必重新定义在它的一般类中定义过的属性和服务,而它 却自动地、隐含地拥有其一般类的所有属性与服务。从 般类和特殊类的定义可以看到,后者对前者的继承在 逻辑上是必然的。 个特殊类既有自己新定义的属性和服务,又有从 它的一般类中继承的属性与服务。继承的属性和服务, 尽管是隐式的,但是无论在概念上还是在实际效果上, 都确确实实地是这个类的属性和服务;同时继承关系是 传递的 继承具有重要的实际意义,它简化了人们对事物的 认识和描述 继承对于软件复用是很有益的 杜永林 第七章面向对象的系统开发
杜永林 第七章 面向对象的系统开发 24 (1)继承的引入 继承意味着“自动地拥有”。就是说,特殊类中不 必重新定义在它的一般类中定义过的属性和服务,而它 却自动地、隐含地拥有其一般类的所有属性与服务。从 一般类和特殊类的定义可以看到,后者对前者的继承在 逻辑上是必然的。 一个特殊类既有自己新定义的属性和服务,又有从 它的一般类中继承的属性与服务。继承的属性和服务, 尽管是隐式的,但是无论在概念上还是在实际效果上, 都确确实实地是这个类的属性和服务;同时继承关系是 传递的。 继承具有重要的实际意义,它简化了人们对事物的 认识和描述。 继承对于软件复用是很有益的
2)继承与类的关系 继承所表达的就是一种对象类之间的相互关系。它使得某 类对象可以继承另外 对象的特征和能力。特殊类的对象拥 般类的仝部属性写服务,称做特殊类对一般类的继承。 若类间具有继承关系,则它们之间应具有三个特性: ①类间具有共享特征(包括数据和程序代码的共享); ②类间具有细微的差别或新增部分(包括非共享的程序代 码和数据) ③类间具有层次结构。 继承所具有的作用有两个方面:一方面可以减少代码冗余 另一方面可以通过协调性减少相互之间的接口和界面 杜永林 第七章面向对象的系统开发
杜永林 第七章 面向对象的系统开发 25 (2)继承与类的关系 继承所表达的就是一种对象类之间的相互关系。它使得某 类对象可以继承另外一类对象的特征和能力。特殊类的对象拥 有其一般类的全部属性与服务,称做特殊类对一般类的继承。 若类间具有继承关系,则它们之间应具有三个特性: ①类间具有共享特征(包括数据和程序代码的共享); ②类间具有细微的差别或新增部分(包括非共享的程序代 码和数据); ③类间具有层次结构。 继承所具有的作用有两个方面:一方面可以减少代码冗余; 另一方面可以通过协调性减少相互之间的接口和界面