什么是面向对象程序设计.doc_第1页
什么是面向对象程序设计.doc_第2页
什么是面向对象程序设计.doc_第3页
什么是面向对象程序设计.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: 面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的2 用面向对象方法建立模型的思维过程是怎样的。用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中: 知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。 具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。3 解释以下概念: 对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中, 而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 实例:任何一个对象都是该对象所属类的一个具体实例。 公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该对象发送。 消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。4 类与实例的关系如何?类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: 相同的操作集合; 相同的静态属性集合; 不同的对象名和属性动态值。5 解释以下概念: 封装:封装是数据隐藏设计思想的实现,它必须具备三个要素: 具有一个确定的边界,对象的所有私有数据、内部程序(成员函数)细节都被固定在这个边界内部; 具有一个接口,这个接口描述对象之间的相互作用的规格说明,即消息; 对象内部的实现代码受到封装的保护,其他对象不能直接修改该对象所拥有的数据和代码。 协议:对象对外服务的说明 继承:继承表达了一种对象类之间的相交关系,它使得某类对象可以继承另一类对象的特征和功能。 单继承:一个类只从一个已有类(父类)中继承特征和功能。 多继承:一个类只从不止一个已有类(父类)中继承特征和功能。 委托:委托是将一个对象的工作分配给与该工作相关的特定的对象去完成的代码重用机制,它是一种既可以静态实现又可以动态实现的复杂关系。 重载:通过为函数或运算符创建附加定义,使相同名字的函数或运算符在不同的场合可以表现出不同的行为。 抽象类:抽象类是一个用于一组具有相同接口的类的公共基类,它刻划了所有由它派生的类的统一的接口定义,但只描述这些接口协议的部分实现,而完整的实现要由派生类完成。因此抽象类不能创建实例(对象)。 类的层次:有类的继承关系构成类结构。6 面向对象程序设计的软件生命周期有哪几个阶段,它与传统的程序设计有什么不同?面向对象软件的开发生命周期是由分析、设计、演化和维护四个阶段组成的。每个阶段都可以反馈,是一个迭代、渐增的开发过程。这种迭代、渐增过程不仅贯穿整个软件生命周期,并且表现在每个阶段中特别是分析(全局分析、局部设计)和设计(全局设计、局部设计)阶段。这与传统的程序设计所遵循的分析、设计、编码、调试和维护五个阶段组成的瀑布式生命周期有着很大不同,更符合随着人的认识逐步深化,软件分析、设计逐步求精的规律,更有利于软件的编码、调试和维护、扩展。7 在认真阅读使用UML为网上拍卖程序建模的实例的基础上,试叙述你对在面向对象程序设计中建模的重要性和使用UML进行建模的优点的理解。软件的概念模型能帮助开发人员认识所设计系统的需求,便于用户和开发人员充分交流并达成一致;能管理系统分析、设计阶段繁杂信息;能准确描述系统分析、设计的结果,从而成为编码、调试和维护的依据。使用UML进行建模可以提高我们在OO软件开发的每个阶段的工作效率 从记录新的问题领域中心概念的一些最初想法,到组织开发人员与领域专家进行交流,直到最终软件产品的图形文档记录等。这些优点主要表现在: 直观、易于理解问题领域和发现设计中的错误,特别是那些有关对象间关系的错误; 便于准确地从模型到实际应用编码的转换; 用于系统的调试和出问题时检错的依据。8 试创建一个用例图,描述下面这些角色和用例: 一个名称为Student的角色。 一个名称为College的角色。 下面这些用例是Student角色特有的:List All Courses:列出全部课程,以便学生选课。Pay Fees:付费。Registration:注册。Search for a Course:帮助学生决定登记一门课程,该用例应该是对用例List All Courses迭代(generalization)过程的一般化。 下面这些用例是College角色特有的:Maintain a Database of Students:维护学生数据库。Registration:注册(与Student的同名用例是同一个用例)。Administer Examinations:考试管理。Check Student Qualification:学生资格审查,该用例包含(include)接受学生的注册申请。StudentCollegeRegistrationLis

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论