章面向对象程序设计概论-36页PPT资料

合集下载

面向对象程序设计PPT课件 PPT资料共63页

面向对象程序设计PPT课件 PPT资料共63页
Stringed object vptr
Percussion object vptr
&Wind::play() & Stringed::play() & Percussion::play()
06.11.2019
第5章多态与抽象类
37
当通过对象调用虚函数时,是通过 vptr找到虚函数表,再找出虚函数的 真正地址。
06.11.2019
第5章多态与抽象类
28
【思考题5-4】将例5-5中用对象调用
虚函数,其结果如何?
【注意】只有通过对象指针或对象引 用来调用虚函数,才能实现动态联编 。如果采用对象来调用虚函数,则采 用的是静态联编方式。
06.11.2019
第5章多态与抽象类
29
【例5-6】将例5-4基类的成员函数 print()设为虚函数,采用对象引用调 用虚函数,进而实现动态联编。
06.11.2019
第5章多态与抽象类
32
小结
(1)如果你期望在派生类中重新定义一 个成员函数,那么你就应该在基类中 把该函数设为virtual。
(2)以单一指令调用不同函数,这种性 质就是"多态"。
(3)虚函数是C++语言的多态性质和动 态绑定的关键。
(4)虚函数派生下去仍是虚函数,而且
可以省略virtual关键词。 06.11.2019
25
该程序的运行结果为:
A student A graduate student A student A student A graduate student
06.11.2019
第5章多态与抽象类
26
【思考题5-5】如果将例5-5中Student类改 为:

第一讲面向对象程序设计(共39张PPT)

第一讲面向对象程序设计(共39张PPT)
本文档详细阐述了面向对象程序设计的基础知识。首先,解释了面向过程与面向对象的区别,强调了面向对象编程的特点和优势。接着,引入了对象的概念,对象是数据和操作的独立整体,类则是对象的模板,定义Байду номын сангаас一组有相同数据和操作的对象的共同属性和行为。文档还深入探讨了面向对象的主要特征,包括封装性、继承性和多态性。此外,通过Java语言的实例,展示了如何定义类、创建方法和变量,以及如何通过对象来访问这些方法和变量。其中,方法的创建包括四种常用形式,可以根据是否需要返回值和参数进行划分。最后,通过创建一个Student类的例子,具体演示了如何在类中定义属性(如sid、name、age)和方法,并通过对象来访问这些属性和方法。这份文档为学习和理解面向对象程序设计提供了全面的基础知识和实践指导。

第一章面向对象程序设计概述PPT资料87页

第一章面向对象程序设计概述PPT资料87页

1.2.1面向过程程序设计
结构化程序设计(Structured Programming, 缩写:SP)是以模块功能和处理过程设计为主的 开发软件方法。其设计思想是采用“自顶向下, 逐步求精,模块分解,分而治之”的解决问题方 法。
自顶向下、逐步求精是指将分析问题的过程划分 成若干个层次,每一个新的层次都是上一个层次的 细化,即步步深入,逐层细分。
80年代,面向对象程序设计成为了一种主导 思想,相继出现了如Object-C、C++、Self、 Java等面向对象语言。随着面向对象语言的 发展,面向对象程序设计方法也就应运而生 且得到迅速的发展。
90年代以来,面向对象程序设计语言、面向 对象程序设计方法广泛应用于程序设计,并 逐渐形成了面向对象分析、面向对象设计、 面向对象编程、面向对象测试等面向对象软 件开发方法。从此,全世界掀起了一股面向 对象的热潮,至今盛行不衰,面向对象程序 设计方法逐渐成为程序设计的主流方法。
60年代中期,挪威计算中心的Kisten Nygaard 和Ole Johan Dahl开发了Simula67语言,是第 一个的面向对象程序设计语言。它引入了所 有后来面向对象程序设计语言所遵循的基础 概念:对象、类和消息。被称为面向对象程 序设计语言的祖先或前身,为面向对象这一 当前最流行、最重要的程序设计技术奠定了 基础。
模块分解,分而治之是将整个系统分解成若干个易 于控制、处理、完成一定功能的子任务或子模块, 每分解一次都是对问题的进一步的细化,直到最低 层次模块所对应的问题足够简单为止。每个模块功 能可由结构化程序设计语言的子程序(函数)来实 现。
结构化程序设计方法的实现
结构化程序设计方法实现程序设计需要经过两个过程: 模块分解和组装。

面向对象程序设计概述PPT教学课件

面向对象程序设计概述PPT教学课件

2020/12/09
4
例如“自行车”和“这辆白色的自行车”
“这辆白色的自行车”是物质,它是具体的客观存在; “自行车”是意识,它是一个抽象的概念,是对客观存在的事物的一种概 括。
这些现实世界中的事物可直接映射到面向对象系统的解空间,现实世界 中的物质可对应于面向对象系统中的抽象概念——“对象”; 现实世界中的意识可对应面向对象系统中的抽象概念——“类”。 自行车在面向对象系统中可用自行车类来表达,一辆白色的白行车在面 向对象系统中是一个具体的对象,是自行车类的一个实例。
两者之间的比较 可视化的基础是面向对象编程的实现(OOP) C++是面向对象编程方法+结构化的编程方法(SP ) 3、Delphi简介:聪明的程序员用Delphi,真正的程序员用C++ 4、Java简介:纯面向对象语言
JDK、J++Builder、Visual J++ 5、C#
2020/12/09
3
·什么是对象?
例如:人与张三,那个是类?那个是对象?这个对象是不是这个类的对
象?
对象是某类的一个实例(特例),是特殊性。
2020/12/09
10
3、对象的属性和方法 什么是对象的属性?数据成员——王东例中的状态 什么是对象的方法?函数成员——王东例中的功能
2020/12/09
11
4、面向对象编程的基本特性 四个基本特性:抽象、封装、继承与多态 封装:将细节信息隐藏起来,用户通过接口实现对数据等的操作(如,机 器密码) 如去ATM机上取款,知道怎么用,有个交互界面,但内部如何操作? 抽象:对实例进行分析,抽去出共同性质 继承:什么是继承? 父类子类,基类派生类,超类 单继承、多继承

第1章面向对象程序设计概论精品PPT课件

第1章面向对象程序设计概论精品PPT课件

面向对象程序设计应该具有的特征
所有待处理的内容都表示成对象; 对象间依靠相互发送消息或响应消息实现通信; 每个对象都有自己的惟一标识,以便区别属于同
一个类的不同对象; 对象一定属于某个类,我们又将这个对象称为所
属类的一个实例; 类是将具有共同属性的对象进行抽象的结果,它
可以具有层次关系,即一个类既可以通过继承其 他类而来,也可以被其他类继承。
自身所承受的操作 施加于其他对象的操作
学生对象: 属性:
学号:0410430129 专业:电气 性别:男 身高:175cm 体重: 65kg 对象的功能: 回答学号 回答专业 回答性别 回答身高 回答体重 体重变化 修理电器 开车
1.2.2 面向对象程序设计
面向对象程序设计方法是指用面向对 象的方法指导程序设计的整个过程, 所谓面向对象是指以对象为中心,分 析、设计及构造应用程序的机制。
1.1.2 结构化程序设计方法
自顶向下、逐步求精的开发方法 模块化的组织方式 结构化的语句结构
自顶向下、逐步求精
将编写程序看成是一个逐步演化的 过程。所谓自顶向下是指将分析问 题的过程划分成若干个层次,每一 个新的层次都是上一个层次的细化, 即步步深入,逐层细分。
模块化
将整个系统分解成若干个模块,每 个模块实现特定的功能,最终的系 统将由这些模块组装而成。模块之 间通过接口传递信息,力求模块具 有良词
面向对象程序=对象+消息
面向对象程序设计的优点
1.能够实现对现实世界客体的自然描述 2.可控制程序的复杂性(属性和行为的绑定) 3.可增强程序的模块性 4.可提高程序的重用性 5.可改善程序的可维护性 6.可适应新型的硬件环境
method n
私用数据细节

章面向对象程序设计概论-PPT精品文档36页

章面向对象程序设计概论-PPT精品文档36页

Complex2 a,b; //a、b是Complex2类的实例变量
a.Set(4.0,6.0); //调用成员函数来实现消息发送
b.Set(4.0,6.0); } //同一消息可发向多个对象
三、封装
数据封装:将数据和处理数据的方法包装成一个整体, 并将具体实现细节的数据信息和操作方法在结构上隐藏 起来;
1.1.1 面向过程与面向对象程序设计(续9)
面向对象的方法: (1)将数据及对数据的操作方法放在一起,作
为对象; (2)对同类型对象抽象出其共性,形成类; (3)类中数据用本类的方法进行处理; (4)类通过一个简单的外部接口与外界发生
关系,对象与对象之间通过消息进行通信.
1.1.2 面向对象程序设计的有关概念
}
1.1.1 面向过程与面向对象程序设计(续1)
面向对象程序设计方法 void main() { count A;//定义对象
A.process();//调用公有成员函数 A.display(); }
1.1.1 面向过程与面向对象程序设计(续2)
#include <stdio.h>
#include <iostream>
作为“学生” 学校名称:中南民族大学 学 号:100701022
研究生 专 业:字符串(30位) 入学年月日:结构类型Date
作为“研究生” 专 业:自动控制 入学年月日:1/9/2019
四、继承(续2)
继承可增强代码的可重用性,代码的重用是 利用继承基类的属性和方法来实现的.
继承某一基类的派生类可自动继承基类的 全部属性和方法.
C++支持数据封装(数据抽象) C++中,类是支持数据封装的工具,对象则
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1.1 面向过程与面向对象程序设计
例1.1:输入任意短语或句子,计算短语包含多少个字(word)和字
符(character)。注意:输入短语时,字和字之间只能空一格。
***Please input any phrase...
#include <stdio.h> I am//a面t向ea过ch程e程r.序
{
wdcount=1;
chcount=0;
}
1.1.1 面向过程与面向对象程序设计(续3)
void count::process() //成员函数的实现
{ char ch;
cout<<"***:Please input any phrase…"<<endl;
while((ch=getchar())!='\n')
{ chcount++;
if(ch==' ')
wdcount++;
}
cout<<endl;
}
void count::display() {
cout<<"\n*:number of word is "<<wdcount<<endl;
printf("*:number of char is %d\n",chcount);
消息1
MF1 对象2 MF3
MF2
1.1.1 面向过程与面向对象程序设计(续8)
面向过程的方法:
结构化程序设计思想为使用面向过程的方法 解决复杂问题提供了有力的手段.
结构化程序设计思路:自顶向下划分模块,直到 最底层的每个模块都是完成单一独立的功能为止; 将这些函数模块装配起来即实现编程的任务.
数据和处理数据的方法是分开完成的.
}
1.1.1 面向过程与面向对象程序设计(续1)
面向对象程序设计方法 void main() { count A;//定义对象
A.process();//调用公有成员函数 A.display(); }
1.1.1 面向过程与面t;
#include <iostream>
面向对象程序设计
O5 O4 O3 O2 O1
1.1.1 面向过程与面向对象程序设计(续7)
消息传递 机制
面向过程 程序设计
数据1
数据2 参数 f2() 返回值
过程2
参数 f1() 返回值
数据3
过程1
数据5
参数 f3() 返回值
数据4
过程3
面向对象 程序设计
MF4
MF1 对象1 MF3
消息2 MF2 MF4
类是创建对象的样板,是所有对象的共同的行为和不 同的状态的集合体;
using namespace std;
class count
//定义类
{
public:
//公有成员
count();
//构造函数
void process();
//成员函数
void display();
private:
//私有成员
int wdcount,chcount;//数据成员
};
count::count()
以相对稳定的“对象” 和“数据结构”为中 心来构造系统
可重用性较好
1.1.1 面向过程与面向对象程序设计(续5)
面向过程程序设计
程序=(算法)+(数据结构)
面向对象程序设计
程序=(算法+数据结构)
P5
O5
P46
O4
P3
O3
P2
O2
P1
O1
1.1.1 面向过程与面向对象程序设计(续6)
面向过程程序设计
一、对象与抽象 二、类 三、封装 四、继承 五、多态
一、对象与抽象
1、对象
对象是现实世界中实际存在的一个事物,如:一 本书、一台电脑
对象是面向对象程序设计的核心概念,从现实事 物中抽象出来,对象具有: (1) 属性: 状态和外貌特征 —— 用数据表示 (2) 方法: 行为 —— 用程序代码表示 对象 = (算法 + 数据结构) 程序 = (对象1 + 对象2 + 对象3 ……)
void main()
*:The number of word is 4
{ char ch;
*:The number of char is 15
int wdcount,chcount;
wdcount=1;
chcount=0;
printf("***:Please input any phrase:\n");
while((ch=getchar())!='\n') { chcount++;
if(ch==' ') wdcount++;
} printf("\n*:The number of word is %d\n",wdcount); printf("\n*:The number of char is %d\n",chcount);
第一章 面向对象程序设计概论
1.1 OOP(Object-Oriented Programming) 的基 本思想和有关概念
1.1.1 面向过程程序设计与面向对象程序设计 1.1.2 面向对象程序设计的有关概念
1.2 C++对OOP方法的支持 1.3 C++对C语言的改进 1.4 C++程序的编辑、编译和运行 1.5 C++程序结构的特点 1.6 Visual C++程序运行步骤 小结
1.1.1 面向过程与面向对象程序设计(续9)
面向对象的方法: (1)将数据及对数据的操作方法放在一起,作
为对象; (2)对同类型对象抽象出其共性,形成类; (3)类中数据用本类的方法进行处理; (4)类通过一个简单的外部接口与外界发生
关系,对象与对象之间通过消息进行通信.
1.1.2 面向对象程序设计的有关概念
}
1.1.1 面向过程与面向对象程序设计(续4)
面向过程程序设计
面向对象程序设计
是一种数学思维或计算 机思维方法,与人们认 识世界的方法不同
以不稳定的、多变的 “过程”和“操作” 为 中心来构造系统
可重用性较差
是建立在认识方法学 基础上的一项技术科 学,比较自然地模拟 了人类认识客观世界 的方式;
一、对象与抽象(续1)
2、抽象
抽象是对现实世界中的实体进行归类、简化的描述, 即模型化;是通过从特定的实例中抽取共同的性质以 形成一般化的概念的过程;
抽象代表着一个对象的本质特征,这个特征将该对象 与所有其他种类的对象区别开来;
抽象具有层次;
交通工具
汽车
轮船
飞机
二、类
类是面向对象程序设计封装的基本单元,封装了逻辑 上相关的函数与数据;
相关文档
最新文档