没有合适的资源?快使用搜索试试~ 我知道了~
面向对象程序设计完整版.doc
0 下载量 156 浏览量
2023-08-03
20:43:34
上传
评论
收藏 285KB DOC 举报
温馨提示
试读
148页
面向对象程序设计完整版.doc
资源推荐
资源详情
资源评论
Object- Oriented Programming
C++
主讲 成长生
东华大学计算机科学与技术学院
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
第一章 概述
§1.1 面向对象程序设计的基本思想
C++是基于 C 语言发展的, 又冲破 C 语言局限的面向对象的程
序设计语言。它与 Java 语言都作为当前计算机科学的主流语言,
越来越受到用户的欢迎。
要弄清楚什么是面向对象的程序设计, 首先了解和回顾传统的
( Pascal( 或 C) ) 结构化程序设计方法及其设计思想、 程序结构
及特点。SP(Structure Programming)是 60 年代诞生的针对当时爆
发的所谓”软件危机”, 为此发展形成了现代软件工程学的基础。
SP 的总的设计思想是:
.自顶向下、 层次化
.逐步求精、 精细化
程序结构是按功能划分基本模块的树型结构, 使模块间的关系
尽可能简单独立。因此 SP 的程序的基本特点是:
.按层次组织模块( 战略上划分战役)
.每一模块只有一个入口, 一个出口
.代码和数据分离( 程序=数据结构+算法)
归纳得到: SP 把数据和过程( 代码、 函数) 分离为相互独立的
实体, 用数据代表问题空间中的客体借以表示实际问题中的信息;
程序代码则用来处理加工这些数据。程序员在编程时, 必须时刻考
虑所要处理的数据结构和类型。对不同的数据格式即使要作同样
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
的处理计算, 或者要对相同的数据格式作不同的处理都必须编写
不同的程序( 如两个整型数和两个浮点数相加) 。这样的编程方法,
即传统的 SP 方法设计出来的程序或系统其可重用的成分很少。其
次把数据和代码作为不同的分离实体时, 总存在着用错误的数据
调用正确的程序模块, 或用正确的数据调用错误的程序模块的危
险, 从而使数据与程序始终保持兼容, 已成为程序员的一个沉重的
负担。在开发一个大型软件课题中, 当工程进入到后期若用户改变
了方案要求, 很容易使技术人员的前期工作受到摧毁性的打击, 使
其前功尽弃。为克服以上的弊端或者该 SP 方法难以控制处理的矛
盾 而 产 生 了 面 向 对 象 程 序 设 计 方 法 , 即 Object - Oriented
Programming――OOP。从二十世纪六十年代提出对象的雏形, 到七
十年代美国国防部的专用语言 Ada 语言, 直到当前国际上流行的
高品味的 Java 和 C++(Tc++,Balandc++及 Vc++), , 应该讲 OOP 方
法与技术吸取了 SP 的一切优点, 同时又正视和顺应现实世界由物
质和意识二部分组成。映射到面向对象的解空间就是: 具体事物-
对象; 抽象概念-类。
OOP 的基本原理是用问题领域的模型来模拟大千世界, 从而设
计出尽可能直接、 自然地表示问题求解方法的软件, 这样的软件
由对象组成, 而对象则是完整反映客观世界事物具有不可分割的
静态属性( ”数据结构”) 与动态行为( ”方法”) 的。而且它们
是既有联系又有变化发展的实体( 实例) 。如人是一种抽象( 类) ,
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
而张三则是一个具体的一个人, 是类的实例, 故为对象, 她有自身
的一系列属性( 身高、 体重、 学历等) 。
面向对象抽象的原理有 4 个。分别是数据抽象, 行为( 操作)
共享, 进化和确定性。它们的作用简单地讲把数据封装起来达到数
据隐藏, 达到数据的高度安全; 不同层次的类操作( 行为) 尽可能
共享; 进化则是知识积累、 知识更新的长期过程; 确定性则是一
个相对概念, 对一个问题的认识和解释, 随着时间的推移, 其解释
也是在发生变化的。( 更具体的见 P3-但有困难, 这些概念在以后
的章节中才能详细讨论) 。
下面再解释三个专业术语。
1. 对象
什么是对象? 对象是私有数据及能够对这些数据施加操作结
合在一起所构成的独立实体。这里的操作就是一些操作代码。对
象的动作取决于发送给该对象的消息表示式, 消息告诉对象要求
完成的功能( What to do) , 并激活该功能, 这意味着对象具有自动”
知道”如何完成相应操作代码( How to do) 的”智能”选择机制。
与 SP 相比, OOP 的威力在此初步显露出来。从逻辑上来分析, 一个
对象是独立存在的模块, 从外部看这模块只需了解它具有哪些功
能, 至于它如何实现这些功能和使用哪些局部数据来完成它们的
细节则”隐蔽”在模块内部, 这就意味着模块内部状态不受外界干
扰改变, 也不会殃及到其它模块, 进而使模块间依赖性小到几乎没
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
有。
2. 类
什么是类?类是对一组具有相同数据成员和相同操作成员的
对象的说明。即类是抽象数据类型的实现, 一个类的所有对象都有
相同的数据结构和操作代码。每个对象都是某个类的一个具体实
例。( 有的文献中用实例来替代对象)
3. 继承
继承是 OOP 的一个重要机制。继承提供了创立新类的一种
方法。一个新类能够经过已有类进行修改或扩充来满足新类的要
求。新类共享已有类的行为, 而自己还具有修改或添加的行为。我
们把已有类称之为父类, 新类称为子类, 则子类继承父类, 而父类
派生子类。继承机制的主要优点是能减小代码和数据的重复冗余
度, 大大增强程序的重用性, 能清晰体现相似类之间的层次关系。
C++是一种面向对象的程序设计语言。这种语言有七个主要的
特点。
1) 数据封装
例 先说明一个类
class 类名
{
<成员函数>
body
剩余147页未读,继续阅读
资源评论
yyyyyyhhh222
- 粉丝: 418
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- git使用文档(一步一步教你使用Git仓库管理代码)
- 进制转换(通用版).cpp
- linux实践之从DistroWatch排名第三的EndeavourOS转到排名第五的Manjaro工作机迁移
- Discuz模板+资讯博客课程干货+商业版(GBK+UTF)
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本123.0.6292.0)
- RB308A-SOT23-5 单节锂电池保护IC 深圳市可芯电子有限公司.pdf
- Ubuntu下安装JDK
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本123.0.6291.0)
- Android基础之用Eclipse建立工程
- WZLR(2).ipynb
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功