1、面向对象方法学面向对象方法学 传统软件工程方法学适用于中小型软件产品开发;传统软件工程方法学适用于中小型软件产品开发;面向对象软件工程方法学适用于大型软件产品开发。面向对象软件工程方法学适用于大型软件产品开发。面向对象方法学面向对象方法学 面向对象方法学方程式:面向对象方法学方程式:OO OO对象类继承传递消息实现通信对象类继承传递消息实现通信面向对象方法学面向对象方法学n 面对对象方法学概念面对对象方法学概念n 与传统方法学比较与传统方法学比较n 面向对象方法学优点面向对象方法学优点 面向对象方法学面向对象方法学-概念概念一一.对象对象 形象表示:形象表示:定义:具有相同状态的一组操作的集合
2、,定义:具有相同状态的一组操作的集合,对状态和操作的封装。对状态和操作的封装。面向对象方法学面向对象方法学-概念概念例:例:在计算机屏幕上画多边形在计算机屏幕上画多边形,多边形是由有序顶,多边形是由有序顶点集定义的对象点集定义的对象。操作包括操作包括drawdraw(在屏幕显示(在屏幕显示它)、它)、movemove(移动)及(移动)及containscontains(检查某特殊检查某特殊点是否在多边形内部点是否在多边形内部)。)。面向对象方法学面向对象方法学-概念概念 二二.类类 对具有相同状态和相同操作的一组相似对象的定义。对具有相同状态和相同操作的一组相似对象的定义。类是一个抽象数据类型
3、。类是一个抽象数据类型。面向对象方法学面向对象方法学-概念概念 三三.实例实例 实例是由某个特定类所描述的一个具体对象。实例是由某个特定类所描述的一个具体对象。面向对象方法学面向对象方法学-概念概念 四四.消息消息 要求某对象执行某个操作的规格说明要求某对象执行某个操作的规格说明。三部分:三部分:l接收消息的对象l消息名l0或多个变元 quadrilateral1.move(1,3)面向对象方法学面向对象方法学-概念概念五五.方法和属性方法和属性l方法方法 对象执行的操作,即类中定义的服务。如:draw(),要给出实现代码。l属性属性 类中所定义数据,对客观世界实体具体性质的抽象。如:Quad
4、rilateral类中的point1、point2、point3 point4。面向对象方法面向对象方法-概念概念六六.继承继承 子类自动共享基类中定义的子类自动共享基类中定义的属性和方法的机制属性和方法的机制。面向对象方法学面向对象方法学-概念概念四边形类中斜体部分表示继承于多边形四边形类中斜体部分表示继承于多边形面向对象方法学面向对象方法学-概念概念七七.多态性多态性 在类等级不同层次可共享一个方法名,不同层次每个类按各自需要实现这个方法。A是基类,B和C是A的派生类,多态函数Test参数是A的指针,Test函数可以引用A、B、C的对象。多态示例程序多态示例程序面向对象方法学面向对象方法学
5、-概念概念优点:优点:l 提高程序可复用性(接口设计的复用,不是代码实现提高程序可复用性(接口设计的复用,不是代码实现复用)复用)l 派生类的功能可被基类指针引用,提高程序可扩充性派生类的功能可被基类指针引用,提高程序可扩充性和可维护性。和可维护性。面向对象方法学面向对象方法学-概念概念八八.重载重载 1.1.函数重载函数重载 在同一作用域内,参数特征不同的函数可使用相同的名字。函数重载示例程序函数重载示例程序面向对象方法学面向对象方法学-概念概念优点:优点:l调用者不需记住功能雷同函数名,方便用户;l程序易于阅读和理解。面向对象方法学面向对象方法学-概念概念2.2.运算符重载运算符重载 同一
6、运算符可施加于不同类型操作数上面。例:23+24 23.0+24.0 面向对象方法学面向对象方法学-与传统方法比较与传统方法比较面向对象方法学面向对象方法学-与传统方法比较与传统方法比较面向对象方法学面向对象方法学-与传统方法比较与传统方法比较面向对象方法学面向对象方法学-优点优点 一一.与人类习惯思维方法一致与人类习惯思维方法一致 对象是对现实世界正确抽象,问题空间和解空间结构一致。二二.稳定性好稳定性好 软件系统结构根据问题领域模型建立,功能需求变化不会引起软件结构整体变化,作局部性修改。如从已有类派生新子类实现功能扩充或修改。面向对象方法学面向对象方法学-优点优点三三.可重用性好可重用性好 传统软件重用技术:标准函数库。面向对象重用技术:类,派生类和创建类的实例四四.易开发大型软件产品易开发大型软件产品 封装性好,易于分解,易于合作开发。五五.可维护性好可维护性好 稳定性好、容易修改、容易理解、易于测试和调试。面向对象方法学面向对象方法学n 面对对象方法学概念面对对象方法学概念n 与传统方法学比较与传统方法学比较n 面向对象方法学优点面向对象方法学优点