概论 面向对象程序的设计-文档资料

合集下载

第1章面向对象程序设计概述

第1章面向对象程序设计概述

运算符重载:一个运算符可以同时应用于多种运算。
虚函数:(在一个类等级中可以使用相同函数的多个 版本,每一个版本的属于类等级中的不同的类)
继承和多态性组合,可以生成很多相似但又独 一无二的对象。继承性使得这些对象可以共享许 多相似特性,而多态又使同一个操作对不同对象 产生不同表现形式。这样不仅提高了程序设计的 灵活性,而且减轻了分别设计的负担。
“过程”通过特定规则组织起来的一些对象 “表现”出来的。面向对象和面向过程的这个 差别导致了整个分析设计方法的革命。
分析设计从过程分析变成了对象获取,从数据 结构变成了对象结构。
课程内容
➢ 程序设计方法 ➢ OOP的基本概念
➢ 对象与类 ➢ 数据的抽象和封装 ➢ 继承性 ➢ 多态性 ➢ 消息和方法
当对象们被按规则组合起来以后,就能表达预期的功能。其实世 界世界就是这样组成的。平时看上去每个对象都互无关系,然 而当它们按图示规则组织起来之后,踩下刹车,汽车便乖乖停 住了。
面向对象与面向过程根本区别:
不再把世界看作是一个紧密关联的系统,而是 看成一些相互独立的小零件,这些零件依据某 种规则组织起来,完成一个特定的功能。
对象的方法
方法:对象能执行的操作
对象实例
学生张三实体 对象的状态就是对象的属性值。 对象名:张三 对象的属性:
学号:100030 姓名:张三 年龄:20 性别:男 专业:计算机 年级:08级 家庭地址:湛江 对象操作: 显示学生信息 修改学生信息
实例:银行帐户
每个帐户是一个对象,包括
例如从学生张三、小李等实体中抽象出“学生” 类。
对象和类的关系
类的一个具体实现,称为实例

对象
描述这类对象共有的、本质的属性和行为

面向对象程学设计部分课件OO概论资料

面向对象程学设计部分课件OO概论资料
24
1.3 面向对象中的主要概念及基本原则
面向对象中的主要概念: 对象、属性、操作、类、继承、聚合、关联、永久对
象,对象还分为主动对象和消息,泛化分为有多态性和 无多态性的。 面向对象中的基本原则:
信息隐蔽或封装、消息传递、后期连接、委托、类/对 象和关系等。
1.3.1面向对象中的主要概念
25
对象,属性,操作,对象标识
那时,无开发方法而言
3
1、功能分解法(起于二十世纪七十年代)
工作过程:
功 能 分 解 法 ( function
一层层地进行功能分解
decomposition)
功能分解= 功能 +子功能 +功能接口
以系统需要提供的功能为中 心来组织系统。 首先定义各种功能,然后把 功能分解为子功能,同时定 义功能之间的接口。 对较大的子功能进一步分解, 直到可给出明确的定义。 根据功能/子功能的需要设 计数据结构和算法。
19
面向对象的基本思想
(1)从现实世界中客观存在的事物出发来建立软件系统,强 调直接以问题域(现实世界)中的事物为中心来思考问题、认 识问题,并根据这些事物的本质特征,把它们抽象地表示为系 统中的对象,作为系统的基本构成单位。这可以使系统直接映 射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的性质;用对象的操作表示事物 的行为。(属性与操作)
特别是由于当时团队的开发与管理方法的不足,使得在20 世纪70年代的软件危机情况更加严重。
为了解决软件危机,人们对开发技术进行了一定的改进, 对编程语言也进行了革新,如产生了用于软件开发的4GL、 CASE工具、原型技术和代码生成器。这些努力取得了一定的 成就,但没有从根本上解决问题。

面向对象的程序设计

面向对象的程序设计

第六章面向对象的程序设计6.1 面向对象程序设计概述1. 基本概念面向对象的程序设计是经过对类、子类和对象等的设计来体现的类是面向对象程序设计技术的核心。

类: 定义了对象特征以及对象外观和行为的模板。

类的特征:封装性: 隐藏了类中对象的内部数据或操作细节, 只看到外表信继承性:任何类都能够从其它已有的类中派生, 新类保持了父类中的行为和属性, 但增加了新的功能。

体现了面向对象设计方法的共享机制。

多态性: 相同的操作可作用于多种类型的对象上, 并获得不同的抽象性: 提取一个类或对象与众不同的特征, 而不对该类或对象的所有信息进行处理。

基类:系统本身提供的类称为基类。

基类包括容器类和控件类。

容器类是其它对象的集合, 如表格、选项按钮组; 控件类是单一的对象, 不包含其它对象, 如命令按钮、文本框。

子类:以其它类定义为起点, 对某一对象所建立的新类。

新类将继承任何对父类所做的修改。

类库:存储类的文件, 每一个以可视方式设计的类都存储在一个类库中。

类库文件的扩展名为.VCX 。

对象: 是类的一个实例, 包括了数据和过程。

具有所在类所定义的全部属性和方法。

VFP有两种对象:容器对象和控件对象。

属性: 控件、字段或数据库对象的特性。

事件:由对象识别的一个动作。

方法:与对象相联系的由程序执行的一个处理过程, 即处理事件的一组代码用户不能够为对象创立新的事件, 但能够创立新的方法程序。

2. Visual FoxPro 基类从下述Visual FoxPro 基类中, 能够派生子类或创立对象。

容器命令组控件微调标签表单命令按钮复选框OLE 容器控制线条表单集选项组列表框OLE 绑定型控制分隔符#表格选项按钮#文本框自定义形状标头#页框组合框工具栏图象列#页面#编辑框计时器注: # 这些类是父容器的集成部分, 在类设计器中不能子类化基类事件的最小集合事件说明Init 当对象创立时激活。

Destroy 当对象从内存中释放时激活。

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

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

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

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

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

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

面向对象程序设计概述

面向对象程序设计概述
– 另一方面,它们又都有自己的行为或功能, 如电视机的开机、关机、调台等。
a
7
对象的属性与方法
3
面向对象程序设计中的对象是现实世界对象 的模型化,它同样具有状态和行为。
– 对象的状态用属性来维护, – 对象的行为用方法来实现。
因此可以简单地讲,对象是面向对象的程序 设计模式,它由描述状态的属性(变量)和 用来实现对象行为的方法(代码)组成。
决的问题 。 – 而算法则研究如何快捷、高效地组织解决问题的具
体过程。
面向过程——面向机器
a
3
程序设计方法
3
面向对象的程序设计
– 面向对象问题求解关心的不仅仅是孤立的单个过 程,而是孕育所有这些过程的母体系统
– 它能够用计算机逻辑来模拟、描述系统本身,包 括系统的组成,系统的各种可能状态,以及系统 中可能产生的各种过程与过程引起的系统状态切 换。
a
23
抽象
3
在软件开发方法中使用的抽象有两类:过程 抽象和数据抽象
– 过程抽象将整个系统的功能划分为若干部分,强 调功能完成的过程和步骤
– 数据抽象把系统中需要处理的数据和这些数据上 的操作结合在一起,根据功能、性质、作用等因 素抽象成不同的抽象数据类型。每个抽象数据类 型包含了数据,也包含了针对这些数据的授权操 作。面向对象的软件开发采用数据抽象的方法来 构建程序的类、对象和方法。
交通工具 父类/超类 (superclass)
车 船 飞机
汽车 Java仅支持
火车 单重继承,
子类 (subclass)
但可通过 接口实现 多重继承
a
32
OOP的主要特点
3
多态(polymorphism)

面向对象程序设计方案概述-PPT精选文档

other what to do by sending messages
– 所谓 对一个对象发信息,就是调用该对象的一个 方法。
Every object has a type
– each object is an instance of a class
对象+消息
面向对象编程
6
现实中的对象
3
面向对象编程
10
对象的属性和方法
3
确定对象的属性和方法
对象属性:可以是数据或对象。
– 客户——客户号,客户名,地址… – 定单——定单号,定货条目,顾客号(也可以是
顾客对象)。
对象方法:让对象做的事情(可以对自己,也 可以对其他对象),经常影响对象属性。
– 客户—提交定单…
– 定单—打印定单,改变条目…
面向对象编程ຫໍສະໝຸດ 11模型化对象3Order orderID Customer dateOrdered itemsOrdered payment placedBy initialize() calcAmountOwed() printOrder() makePayment() changeItem()
Customer CustomerID name billingAddress shipping Address phone initialize() placeOrder()
– 算法+数据结构
– 数据结构利用计算机的离散逻辑来量化表达需要解 决的问题 。
– 而算法则研究如何快捷、高效地组织解决问题的具 体过程。
面向过程——面向机器
面向对象编程
3
程序设计方法
3
面向对象的程序设计
– 面向对象问题求解关心的不仅仅是孤立的单个过 程,而是孕育所有这些过程的母体系统
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

退出
概述
Smalltalk语言的设计者Alan Kay曾经说 过:“当复杂度上升的时候,结构决定了材 料。”他还举例说明,假设你知道许多砖块的 材料性质。
比如,知道怎样把它们粘接在一起,用它们来砌 墙等一些普通简单的结构,但是如果你不知道拱形的 原理,那你在用砖头来架设一个大拱形门时将会遇到 麻烦。相反,如果你十分清楚拱形的机理,那么这个 问题就容易解决了。熟悉拱形原理的人有可能利用较 少的材料来建造跨度较大的拱形门,而且使该建筑的 结构可以做得更大,支撑更重的负荷。
江西师范大学精品课程
揭安全
E_mail: jieanquan163 QQ:461254151 江西师范大学计算机信息工程学院
3/26/2019 1
教学内容
结 构 化 程 序 设 计 运算符与表达式 流程控制与语句

函数
指针与引用
C++ 语 言 程 序 设
基础
面 向 对 象 程 序 设 计 类与对象
退出
概述
在软件设计领域也是如此,我们把程序设计语言 的语句看作是软件的原材料,数据结构、过程和函 数提供了包装原材料的方法,在传统的结构化程序 设计方法指导下,利用这些组件可以构造结构较复 杂的软件。
退出
概述
但是,当软件的复杂性越来越高时,人们会意识 到软件的复杂性难于控制,软件开发的效率低下, 也就是产生了“软件危机”。 如表现出可靠性不强、正确性难于保证、难理解 、难修改和难维护等现象。这是由于当一个软件与 系统的复杂性上升的时候,传统的简单堆积的方法 损害了整个软件系统的完整性,使系统相当脆弱。




Class Address and Time:
Address: Room 3401
Time: Class 5 、6 and 7, 2:00 - 4:50 PM, Monday Address:
Time: Class 1 and 2, 8:00 - 9:50 AM, Thursday
Assessment Method: Exercises. (20%) ( Note: You will get nothing, if you copy others’ assignments or yours are copied by others ). Practice Testing.(30%) ( Note: as above ) Final Exam. (50%) ( Note: If you have any cheating behavior, you will obtain nothing and incur serious punishment from the official organization. )
退出
概述
C ++是一种混合型的面向对象程序设计语 言。它具有面向对象的特征,可以对面向对象技术 提供支持,同时又具有对传统 C语言的向后兼容性 。在介绍面向对象的程序设计方法时,我们离不开 对 C ++语言的运用,另一方面,想要学习好 C + +语言,就必须抓住C++语言中所特有的面向对 象机制,学习其中的面向对象方法和技术。
继承与派生
多态 输入输出流
退出
教材
1.《C++语言程序设计(第3版)》清华
大学出版社,郑莉 等编著
2.《C++程序设计与应用》张耀仁 著
华中科技大学出版社 2019年11月第1版
教材
3. C++程序设计教程 钱能 清华大学出版社
课件及教学资源: C++面向对象程序设计精品课程网
Email:objectprogram163
江西师范大学精品课程
揭安全
jieanquan163
江西师范大学计算机信息工程学院
3/26/2019 12
学习目标
通过学习,应该能够: 了解面向对象的基本思想
熟悉面向对象程序设计的基本特征
掌握面向对象程序设计的基本方法和实现
退出
概述
面向对象技术是计算机应用领域近十年来迅速发 展的一项新兴技术,它的产生被认为是程序设计方法 学发展过程中的一个里程碑,面向对象的程序设计和 传统的结构化程序设计相比较,具有许多优点。 其主要的特征是注重数据和程序之间不可分割的 内在联系,并把它们进行数据抽象,封装成一个统 一的整体,从而使程序设计人员摆脱了结构化程序 设计过程中具体的数据格式和过程的束缚,将主要 精力集中于要处理的对象的设计和研究上,这样就 大大地减少了软件开发中难于避免的繁杂性,大大 地提高了软件的生产力和质量。
密码:jxnucie
教材
4.C++Primer Plus(第五版)中文版 作者:[美]普拉塔(Prata,S.) 著,孙建春,韦强 译 工 人民邮电出版社
教材
5.C++STL开发技术导引(附光盘) 作者:叶至军 编著 出版社:人民邮电出版社
课程性质与任务
本课程是计算机科学与技术专业的专业课。面向 对象程序设计是目前程序设计的主流范型,是软件开 发人员的必备素质。面向对象程序设计课程主要阐述 面向对象技术程序设计的基本原理和基本技术,使学 生深刻理解面向对象技术所带来的观念改革,掌握一 种面向对象程序设计语言和面向对象设计的思维方式、 规则与基本方法,了解面向对象程序设计技术的发展 趋势。
ቤተ መጻሕፍቲ ባይዱ退出
概述
软件系统是指一组在确定数据上执行确定动作的 机制,那么在设计一个软件系统的体系统结构时,设 计人员面临着一个选择:这个体系结构是基于动作还 是基于数据。 传统的结构化程序设计是基于功能,即动作的, 而面向对象的程序设计是基于数据的,尽管数据和动 作在软件的结构中最终都会发挥作用,但是从软件系 统的整个生命周期来看,在一定程度上,功能是易变 的,而数据是相对稳定。
退出
为什么要学习面向对象程序设计
在建筑行业,任何一项工程在建造之前都必须经 过认真的设计和规划,否则该工程迟早会出问题, 这是一个很明显的道理。 同样的道理,要构造一个复杂的软件,仅仅把一 些指令、过程或模块堆积在一起是不行的。这样的 系统缺乏强壮性,难于理解和修改。要构造一个好 的复杂程序,使之具有强壮性、易扩充、易理解和 易于修改,需要有一套行之有效的构造技术和指导 准则。
课程学习目标
通过本课程学习,使学生掌握面向对象程序设计 的基本方法、规则,并能用面向对象的方法,对客观 事物进行分析、建立模型,初步掌握C++面向对象 编程语言。
主要内容

绪论 C++简单程序设计

继承与派生 多态性



函数
类与对象 C++程序的结构

群体类和群体数据的组织
泛型程序设计与STL 流类库与异常处理
相关文档
最新文档