第1k 概述 Touuspspuaip
第 1 章 面向对象概述
主要内容 1.1面向过程与面向对象的方法论比较 1.1.1关于系统建模方法 1.1.2关于程序设计方法 1.1.3面向过程方法的优势 1.1.4面向对象方法的优势 1.1.5结合面向过程与面向对象方法的应用优势 ·11.6历史反思 1.2面向对象技术的基本原则 1.3面向对象技术的基本要素 1.3.1封装性 ·1.3.2继承性 3.3多态性 1.3.4面向对象概念和术语总结 1.4面向对象的软件开发体系 14.1面向对象框架下软件开发的生命周期 14.2面向对象相关技术的基本概念 ·1.4.3面向对象程序设计的重要性 4.4面向对象分析与设计的重要性 1.4.5Java的地位 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 2 主要内容 ◼ 1.1 面向过程与面向对象的方法论比较 • 1.1.1 关于系统建模方法 • 1.1.2 关于程序设计方法 • 1.1.3 面向过程方法的优势 • 1.1.4 面向对象方法的优势 • 1.1.5 结合面向过程与面向对象方法的应用优势 • 1.1.6 历史反思 ◼ 1.2 面向对象技术的基本原则 ◼ 1.3 面向对象技术的基本要素 • 1.3.1 封装性 • 1.3.2 继承性 • 1.3.3 多态性 • 1.3.4 面向对象概念和术语总结 ◼ 1.4 面向对象的软件开发体系 • 1.4.1 面向对象框架下软件开发的生命周期 • 1.4.2 面向对象相关技术的基本概念 • 1.4.3 面向对象程序设计的重要性 • 1.4.4 面向对象分析与设计的重要性 • 1.4.5 Java的地位
1.1面向过程与面向对象的 方法论比较
1.1 面向过程与面向对象的 方法论比较
系统建模方法 软件危机与系统建模方法的发展 两种流行的建模方法: 面向过程建模方法 面向对象建模方法 2021/2/20 ava面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 4 系统建模方法 ◼ 软件危机与系统建模方法的发展 ◼ 两种流行的建模方法: • 面向过程建模方法 • 面向对象建模方法
面向过程的建模方法和建模语 始于20世纪70年代的结构化分析设计 Structured Analysis and Design, SAD)方法。 ■把一个系统看作是功能的集合,可以进行 分解 ■用数据流图设计系统的模块结构 IDEF( I CAM DEFinition method)图形 化建模语言是面向过程建模技术的代表 2021/2/20 ava面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 5 面向过程的建模方法和建模语言 ◼ 始于20世纪70年代的结构化分析设计 (Structured Analysis and Design, SAD)方法。 ◼ 把一个系统看作是功能的集合,可以进行 分解。 ◼ 用数据流图设计系统的模块结构。 ◼ IDEF(ICAM DEFinition method)图形 化建模语言是面向过程建模技术的代表
DEF的基本表示法 控制 工调结果 输入 原工资 新工资 A0 机制 人事科 箭头名称 箭头作用 箭头名称举例 盒子代表活动,连到盒子上的箭头表示由活动产生的、或活动所需要 的信息或真实对象 子左边及上方进入的箭头表示为完成此活动所需要的数据,控制说 控制变换的条件或环璄,或 是约東 右边离开盒子的箭头表示执行活动时产生的数据 下方的箭头作为执行的机制,可以是执行活动的人或设备 箭头限制了盒子间的关系,而不是表示活动的顺序 2021/2/20 ava面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 6 IDEF的基本表示法 ◼ 盒子代表活动,连到盒子上的箭头表示由活动产生的、或活动所需要 的信息或真实对象。 ◼ 盒子左边及上方进入的箭头表示为完成此活动所需要的数据,控制说 明了控制变换的条件或环境,或者说是约束; ◼ 右边离开盒子的箭头表示执行活动时产生的数据; ◼ 下方的箭头作为执行的机制,可以是执行活动的人或设备。 ◼ 箭头限制了盒子间的关系,而不是表示活动的顺序
面向对象的建模方法与建模语 ■发源于20世纪60年代, Simula语言中引入了类 Class)的概念; 但真正的面向对象程序设计是 Smalltalk语言奠 定基础的,“面向对象”一词也是 Smalltalk首 先采用的; ■C++的问世促进面向对象技术的发展,也使之成 为标准化的面向对象程序设计语言。 20世纪90年代初, Booch、 Jocobson、 Rumbaugh起开发了统一建模语言( Unified Modeling Language UML),UML可以用于确 小 其适用于面向对象的软件设计。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 7 面向对象的建模方法与建模语言 ◼ 发源于20世纪60年代,Simula语言中引入了类 (Class)的概念; ◼ 但真正的面向对象程序设计是Smalltalk语言奠 定基础的,“面向对象”一词也是Smalltalk首 先采用的; ◼ C++的问世促进面向对象技术的发展,也使之成 为标准化的面向对象程序设计语言。 ◼ 20世纪90年代初,Booch、Jocobson、 Rumbaugh一起开发了统一建模语言(Unified Modeling Language ,UML)。UML可以用于确 定、展示和记录软件系统,UML中的图形标记尤 其适用于面向对象的软件设计
UML的基本表示法 Tube 短式标记 ClassName(类名) 长式标记 Shape << Stereotype(类别) Pyra ClassName(类名) M oven attr ibuteName:Typo/属性名:类型 scaled Rotat eo operationName (argumentList): ReturnType /操作名(形参列表):返回值类型 Cube 类设计标记法 类设计举例 ■∪ML有一套复杂的标记法,这里只给出对类的基 本表示,就是在一个矩形框中可以详细描述类 (抽象类、接口、对象实例等)的名称、属性和 操作。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 8 UML的基本表示法 ◼ UML有一套复杂的标记法,这里只给出对类的基 本表示,就是在一个矩形框中可以详细描述类 (抽象类、接口、对象实例等)的名称、属性和 操作
面向过程程序设计方法 从程序设计范型( Paradigm,指设计程 序的规范、模型和风格)看: 程序=过程(定义)+(过程)调用 从程序语言角度出发,依靠各种循环、函 数调用、参数传递维护程序 重视程序流程,不在乎数据的传递方式, 要程序能运行就可以了。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 9 面向过程程序设计方法 ◼ 从程序设计范型(Paradigm,指设计程 序的规范、模型和风格)看: 程序 = 过程(定义)+(过程)调用。 ◼ 从程序语言角度出发,依靠各种循环、函 数调用、参数传递维护程序。 ◼ 重视程序流程,不在乎数据的传递方式, 只要程序能运行就可以了
面向过程程序设计方法的缺 ■子程序(过程)的抽象级别(函数)太低,难 以重用。 需要花相当多的成本维护程序与程序之间的关 联性。 ■数据和操作相分离,当一个或多个数据的结构 发生了变化,这种变化将波及程序的很多部分 甚至遍及整个程序,往往变量和参数传来传去, 传到最后根本就不知道这个变量的作用何在 故程序的复杂性很难控制 已不适宜描述复杂的数据对象。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 10 面向过程程序设计方法的缺点 ◼ 子程序(过程)的抽象级别(函数)太低,难 以重用。 ◼ 需要花相当多的成本维护程序与程序之间的关 联性。 ◼ 数据和操作相分离,当一个或多个数据的结构 发生了变化,这种变化将波及程序的很多部分 甚至遍及整个程序,往往变量和参数传来传去, 传到最后根本就不知道这个变量的作用何在, 故程序的复杂性很难控制。 ◼ 已不适宜描述复杂的数据对象