SElecture 面向对象技术导论培训教程文件.pptVIP

SElecture 面向对象技术导论培训教程文件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象技术导论 引论:面向对象方法 OO方法 分析问题和解决问题的方法 出发点: 模仿人类认识世界的方法 基本方法: 1、将客观世界的任何事物看作对象 Object 2、进而分析事物的组成关系和交互关系 3、建立描述客观世界的抽象模型 面向对象方法的应用 1、程序设计 OOP:以程序模块为 Object 2、系统分析 OOA:以领域事物为 Object 3、系统设计 OOD:以系统组成元素为 Object 4、软件工程 OOSE:综合OOP、OOA和OOD 5、数据模型 OODB:以数据为 Object OOP 的基本概念 OOP 是将 OO 方法应用于程序设计 是一种模块化程序设计 对象是一种程序模块 程序由多个对象组成 OOP 的实现需要 OOPL 面向对象程序设计语言 Smalltalk、C++、Java OOP 的由来 传统程序设计 数据结构 + 算法 = 程序 模块程序设计 数据结构 + 相关算法 = 程序模块 程序模块 + 交互会话 = 程序 OOP 对象 + 消息传递 = 程序 模块化程序设计 基本概念 以数据结构为中心,集中相关的算法实现过程,形成相对独立的模块。 按照信息隐蔽的原则,形成实现细节的局部化。 例:数据文件处理模块 以文件句柄、缓冲区为中心,集中相关过程 隐蔽数据结构和实现算法细节 主要特征 传统的问题求解 设计数据结构 通过功能分解来实现算法(逐步求精) 模块化程序设计的问题求解 基于数据和功能的模块划分 每个模块包含有私有数据和一组过程 避免了全局数据的共享 什么是对象 一种抽象描述 = 特性+行为 描述客观世界中相对独立的事物或实体 对象示例图 面向对象与面向过程的区别    面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 五子棋面向过程设计举例 例如五子棋,面向过程的设计思路就是首先分析问题的步骤: 1、开始游戏, 2、黑子先走, 3、绘制画面, 4、判断输赢, 5、轮到白子, 6、绘制画面, 7、判断输赢, 8、返回步骤2, 9、输出最后结果。 把上面每个步骤用分别的函数来实现,问题就解决了。 五子棋面向对象设计举例 面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为: 1、黑白双方,这两方的行为是一模一样的, 2、棋盘系统,负责绘制画面, 3、规则系统,负责判定诸如犯规、输赢等。 第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。 两者设计的区别(1/2) 面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。 两者设计的区别(2/2) 功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的 通览面向对象实例    假定我们要设计一个媒体播放器。该媒体播放器目前只支持音频文件mp3和wav 通览面向对象实例 public class MediaPlayer { private void PlayMp3() { MessageBox.Show(Play the mp3 file.); } private void PlayWav() { MessageBox.Show(Play the wav file.); } public void Play(string audioType) { switch (audioType.ToLower()) { case (mp3): PlayMp3(); break; case (wav): PlayWav();

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档