Download presentation
Presentation is loading. Please wait.
1
面向对象程序设计 QQ 群: 343072849 Object-Oriented Programming 汽车学院
2
第 1 章 面向对象程序设计概述 本章重点: 本章通过面向过程的程序设计与面向对象的程序设计比较,介绍面 向对象的基本概念,如数据抽象与封装、类的继承性和多态性等。 内容: 1.1 什么是面向对象程序设计 1.2 为什么要使用面向对象程序设计 1.3 面向对象程序设计的语言 本章小结 本章小结 练习题、思考题 练习题、思考题 2
3
1.1 什么是面向对象程序设计 1.1.1 一种新的程序设计范型 面向过程程序设计: 核心是功能分解:自顶向下、逐步求精的模块化设计方法。 程序 = 过程 + 调用 缺点:算法与数据结构的分离,给软件人员造成沉重的负担。当数据结构发生变化时,算法就要随之改 变,程序的可重用性差、维护代价高。 面向对象程序设计: 是一种新的程序设计范型。 程序 = 对象 + 消息 主要结构特点: 程序一般由类的定义和类的使用两部分组成。 程序中的一切操作都是通过向对象发送消息来实现的,对象接收到消息后,启动有关方法完成相应的操 作。 最大优点:软件具有可重用性。当人们对软件系统的要求有所改变时,并不需要程序员做大量的工作, 就能使系统做相应的变化。 3
4
1.1.2 面向对象的基本概念 对象 类 消息与方法 4
5
对象的概念 1 、对象 对象是具有某些特性的具体事物的抽象 每个对象都具有描述其特征的属性及附属于它的行为 属性:型号 外壳 颜色 功率等 一辆汽车 行为:启动 行驶 加速 刹车等 5
6
对象的概念 考虑对象 “ 黎明 ” ,具体描述为: 6 对象名黎明 属性年龄: 45 、学历:博士 职称:教授、专业:计算机软件 行为走路、吃饭、授课
7
对象的概念 对象是描述其属性的数据以及对这些数据 施加的一组操作封装在一起构成的统一体 7 行为 属性数据 操作代码 黎明黎明 对象对象
8
类的概念 2 、类 类是一组具有相同属性和行为的对象的抽象 类是对象的定义,对象是类的一个实例 类 对象 汽车 某辆汽车 电脑 某台电脑 类是抽象的 对象是具体的 8
9
类的概念 类是具有相同的数据和相同操作(函数)的一组 对象的集合 类是对具有相同数据结构和相同操作的一类对象 的描述 9 类名教师 属性年龄、学历 职称、专业 行为走路、吃饭、授课
10
消息与方法 3 、消息与方法 面向对象机制必须提供对象与对象之间的交互即消息传递。 同一个对象可以接受多个消息,做出不同的响应; 相同形式的消息可以传递给不同的对象,做出不同的响应; 对消息的响应并不是必需的。 方法包括界面和方法体两部分 方法界面给出了方法名和调用协议(相当于 C++ 的成员函数名和参数) 方法体则是实现某种功能的一段程序(相当于 C++ 中的函数体) 消息与方法的关系是:对象根据接收到的消息,调用相应的方法 10
11
1.1.3 面向对象的基本特征 1 、1 、抽象性 2 、2 、封装性 3 、3 、继承性 4 、4 、多态性 11
12
1 、抽象 抽象是将有关事物的共性归纳,集中的过程。 抽象是通过特定的实例(对象)抽取共同性质后形成概念 的过程。即类的实现过程。 12 共同属性 Char *name // 姓名 int number // 学号 float score // 成绩 input( ) // 数据录入 moify( ) // 数据修改 print( ) // 数据输出 共同行为 类
13
2 、封装 封装是指把数据和实现操作的代码集中起来存放在对象内 部。对外提供部分接口。 13 操作代码 1 操作代码 2 接口 1 操作代码 3 接口 2 接口 3 数据
14
3 、继承 子类具有父类的属性和行为特征(软件复用)。 14 客车 轿车 车辆车辆 卡车 非机动车 机动车 普通车 越野车 面包车 大客车
15
派生 子类在继承父类的基础上增加新的属性和行为特征。 15 客车 轿车 卡车 机动车
16
单继承与多继承 单继承是指每个派生类只直接继承了一个基类的特征。 多继承是指多个基类派生出一个派生类的继承关系。 16 窗口 对话窗口编辑窗口 车玩具 玩具车
17
4 、多态性 不同的对象收到相同的消息时执行不同的操作。 17 click
18
多态性 几何图形类层次中的多态性。其派生类 “ 圆 ” 、 “ 长方形 ” 、 “ 三角形 ” 等都有服务 “ 求面积 ” 18 几何图形
19
1.2 为什么要使用面向对象程序设计 1.2.1 传统程序设计方法的局限性 1 、传统程序设计开发软件的生产效率低下 2 、传统程序设计难以应付日益庞大的信息 量和多样的信息类型 3 、传统程序设计难以适应各种新环境 19
20
1.2 为什么要使用面向对象程序设计 1.2.2 面向对象程序设计的主要优点 1 、可提高程序的重用性 2 、可控制程序的复杂性 3 、可改善程序的可维护性 4 、能够更好地支持大型程序设计 5 、增强了计算机处理信息的范围 6 、能很好地适应新的硬件环境 20
21
1.3 面向对象程序设计的语言 1.3.1 面向对象程序设计语言的发展概况 1.3.2 几种典型的面向对象程序设计语言 1.3.3 实验平台 VC++6.0 21
22
1.3 面向对象程序设计的语言 1.3.1 面向对象程序设计语言的发展概况 1)第一阶段:从 80 年代到 1995 年 a) 作为 C 语言的增加版出现; b) 这一阶段 C++ 语言基本上是传统类型上的面向对象语言,并且凭 借着接近 C 语言的效率,在工业界使用的开发语言中占据了相当大份额;面向对象语言 2)第二阶段:从 1995 年到 2000 年 这一阶段由于标准模板库 (STL) 和后来的 Boost 等程序库的出现,泛 型程序设计在 C++ 中占据了越来越多的比重性。当然,同时由于 Java 、 C# 等语言的出现和硬件价格的大规模下降, C++ 受到了一定的冲击;标准模板库 Boost 3)第三阶段:从 2000 年至今 由于以 Loki 、 MPL 等程序库为代表的产生式编程和模板元编程的出 现, C++ 出现了发展历史上又一个新的高峰,这些新技术的出现以及和 原有技术的融合,使 C++ 已经成为当今主流程序设计语言中最复杂的一 员。 22
23
1.3 面向对象程序设计的语言 1.3.2 几种典型的面向对象程序设计语言 1. C++ 语言 ● 混合型面向对象程序设计语言; ● 20 世纪 80 年代在 C 语言的基础上开发而来 ; ● C++ 是对 C 的革命,既兼容 C 的语法,又全面支持面向对象 ; ● 广泛流行,并有各种版本的 C++ 编译系统; 2. Java 语言 1995 年 6 月由 SUN 推出; ● 1995 年 6 月由 SUN 推出; ●一种纯粹的面向对象程序设计语言 ; ● 避免了 C 、 C++ 中的不合理因素 ; ●真正实现了与平台无关,可运行于各种操作系统和芯片; 3. C# 语言 ● 2000 年由 Microsoft 公司推出; ●由 C/C++ 发展而来; ● 更易于建立基于 Microsoft.NET 平台,以 XML (扩展标识符语言)为基础的因特网服务; 23
24
1.3 面向对象程序设计的语言 1.3.3 实验平台 VC++6.0 ● Visual C++ 是以 C++ 作为语言、以 MFC 类库为基础的功能强大的 可视化软件开发工具库; ● Visual C++ 可以完成各种各样的应用程序的开发 ; ● Visual C++ 提供强大的调试功能与排错手段; 24
25
第 1 章小结 面向对象程序设计的基本概念; 面向对象程序设计的基本特征; 面向对象程序设计的主要优点。 25
26
第 1 章 练习 编写 C 程序:由键盘输入两个整数,计算两 个整数的和并输出。 26
27
第 1 章思考作业 什么是面向对象程序设计。 什么是对象、类,之间的关系。 什么是抽象和封装。 什么是继承,举例。 什么是多态性,举例。 27
28
Object-Oriented Programming 汽车学院 Q & A Q & A Practice, Practice, and Practice
Similar presentations