7面向对象方法学

来源:互联网 发布:如何雇佣网络水军价格 编辑:程序博客网 时间:2024/05/17 08:46

1.公式

面向对象方法学方程式:

OO=对象+类+继承+传递消息实现通信

2.概念

例子:在计算机屏幕上画多边形,多边形是由有序顶点集定义的对象。操作包括draw(在屏幕显示它)、move(移动)及contains(检查某特殊点是否在多边形内部)。

clip_image002

(1)对象

定义:具有相同状态的一组操作的集合,对状态和操作的封装。

以例子中的三角形的对象为例,(10,50)(30,60)(20,30)表示三角形的一个状态。Draw ,move(x,y),contains(aPoint)就是操作。

(2)类

对具有相同状态和相同操作的一组相似对象的定义。以两个四边形为例,他们都具有四个点,并且有相同的操作。他们抽象出四边形类

clip_image004

(3)实例

实例是由某个特定类所描述的一个具体对象。用以描述现实世界的对象。

clip_image006

(4)消息

要求某对象执行某个操作的规格说明。

三部分:

l 接收消息的对象

l 消息名

l 0或多个变元

quadrilateral1.move(1,3) 发一个消息,让四边行移动。

(5)方法和属性

l 方法

对象执行的操作,即类中定义的服务。

如:draw(),要给出实现代码。

l 属性

类中所定义数据,对客观世界实体具体性质的抽象。

如:Quadrilateral类中的point1、point2、point3

(6)继承

子类自动共享基类中定义的属性和方法的机制。

(7)多态性

在类等级不同层次可共享一个方法名,不同层次每个类按各自需要实现这个方法。

A是基类,B和C是A的派生类,多态函数Test参数是A的指针,Test函数可以引用A、B、C的对象。

clip_image008

优点:

(1)提高程序可复用性(接口设计的复用,不是代码实现复用),不同的对象调用Test函数实现不同的功能。

(2)派生类的功能可被基类指针引用,提高程序可扩充性和可维护性。要对函数进行扩展,可以在子类中再定义一遍这个函数,往里面加新的功能。

(8)重载

3.传统和面向对象方法对比

clip_image010

clip_image012

clip_image014