第1章面向对象概述.pptVIP

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象概述 本章首先介绍了面向对象的基本概念,并与面向过程进行对比,然后具体到面向对象的基本特征和实际的方法论技术,最后对为什么使用UML建模进行简要介绍。 两种程序设计方法 程序设计的两次飞跃 结构化程序设计 程序=数据结构+算法 面向对象程序设计 程序 = 对象 + 消息 两种软件工程方法 传统软件工程 软件分析 → 概要设计 → 详细设计 → 面向过程的编码 → 测试 面向对象软件工程 软件分析与对象抽取 → 对象详细设计 → 面向对象的编码 → 测试 1.1.2 面向对象与面向过程的区别 结构化程序设计:其思想是把大的程序分解为具有层次结构的若干个模块,每个模块再分解为下一层模块,如此自顶向下,逐步细分,从而把复杂的大模块分解为许多功能单一的小模块。其特征是以函数/功能为中心,自上而下,先确定程序的流程怎么走,函数间的调用关系和依赖关系是什么。 1.1.2 面向对象与面向过程的区别 面向对象:以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。是自下而上的程序设计方法,其特点是:从问题的一部分着手,一点一点地构建出整个程序。在设计中以数据为中心,使用类作为表现数据的工具。 类和对象 class People { private String name; public String getName() { return name; } public void setName(String strName) { name = strName; } } 抽象忽略了事件中与当前目标无关的非本质特征,强调与当前事物相关的特征,并将事物正确的归类,得出事物的抽象模型,并且为对象的重用提供了保障。 封装是面向对象方法的一个重要原则。 封装有两个含义: 结合性:将对象的全部状态和行为结合在一起,形成不可分割的整体。其私有属性只能由对象的行为来修改和读取。 信息隐蔽性:尽可能隐蔽对象的内部细节,与外界的接口只能通过外部接口来实现。 封装的信息屏蔽作用反映了事物的相对独立性,我们可以只关心它对外所提供的接口,即能够提供什么样的服务,而不用去关注其内部的细节问题。 继承性是面向对象程序设计语言不同于其他语言的最主要特点。 继承是指子类可以自动拥有父类的全部属性与操作的机制。 继承意味着“自动地拥有”,即在特殊类中不必重新对已经在一般类中所定义过的属性和行为进行定义,而是特殊类自动地、隐含地拥有其一般类的属性和行为。 继承对类的重用性,提供了一种明确表述共性的方法。即一个特殊类既有自己定义的属性和行为,又有继承下来的属性和行为。 定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 方法的重写(覆盖) (1)标识和确定类 标识出来自问题域的相关对象类,这些对象类包括物理实体和概念的描述。 确定类的过程: 查找问题陈述中的所有名词,将产生如下的暂定类:软件、图书管理信息系统、图书管理员、借阅者、老师、学生、帐号、图书信息、书刊名、书刊的ISBN/ISSN号等。 查找问题陈述中的所有名词,将产生如下的暂定类:软件、系统、图书管理信息系统、图书管理员、借阅者、老师、学生、帐号、图书信息、书刊名、书刊的ISBN/ISSN号等。 接下来根据标准,去掉一些不必要的类和不正确的类。 消除冗余类 消除与系统不相干的类 消除模糊类 消除属性 消除操作 (2)准备数据字典 数据字典应当准确描述各个类的精确含义,描述当前问题中的类的范围。 例如:图书信息=BookID (图书编码)+ BookType (图书类别)+ BookName (书刊名)+ Auth (作者)+ Publisher (出版社)+ Price (单价)+ PubDate (出版日期) (3)确定关联 两个或多个对象之间相互作用、相互依赖的关系就是关联。 在需求陈述中使用的描述性动词或动词词组,通常表示关联关系: 大多数关联可通过直接提取需求中的动词词组得出 分析需求陈述,与用户及领域专家讨论,还能发现一些隐含的关联 确定关联的过程: 使用下列标准删除不必要和不正确的关联: 如果某个类被删除,则与它有关的关联也应该删去,或用其他对象重新表达这个关联。 与问题无关的或应在实现阶段考虑的关联。 关联应该描述问题域的静态结构,而不应该描述一个瞬时事件。 应该删除那些可以用其他关联定义的冗余关联。 (4)确定属性 属性是个体对象的性质,通常利用修饰性的名词词组来表示。 确定属性需注意: 只考虑与具体应用直接相关的属性。 避免只用于实现的属性。 为每个属性起一个有意义的名字。 (

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档