面向对象程序相关设计综述_第1页
面向对象程序相关设计综述_第2页
面向对象程序相关设计综述_第3页
面向对象程序相关设计综述_第4页
面向对象程序相关设计综述_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序相关设计综述准备知识—面向过程,面向对象面向过程面向对象面向过程方法:这种方法认为我们的世界是由一个个相互关联的小系统组成的。每个小系统都有着明确的开始和明确的结束,开始和结束之间有着严谨的因果关系。只要我们将这个小系统中每一个步骤和影响这个小系统走向的所有因素都分析出来,我们就能完全定义这个系统的行为。面向过程方法的瓶颈:面向过程的困难,本质上是因为它将世界看作是过程化的,一个个紧密相连的小系统,构成这个系统的各个部分之间有着密不可分的因果关系。这种分析方法在需求复杂度较低的时候非常管用,如同一台照相机,将物体的反光镜头传导到感光胶片,再经过冲洗就能将信息复制出来。然而构成一个大型系统的因素太多,要把所有可能因素,所有因素间的因果关系都分析清楚,再将这个过程模拟出来太困难了。我们的精力有限,计算机能力有限,只能放弃对整个过程的了解,重新寻找一个方法,能够将复杂的系统转化为一个个我们可以控制的小单元。这个方法的转换正如:如果一次成型一辆汽车太过困难,我们可以将汽车分解为很多零件,分步制造,再依据预先设计好的接口把它们安装起来,形成最终的产品。面向对象方法:面向对象方法将世界看作一个个相互独立的对象,相互之间并无因果关系。只有在某个外部力量驱动下,对象之间才会依据某种规律相互传递信息。这些交互构成了这个生动世界的一个“过程”。在没有外力的情况下,对象则保持着“静止”的状态。如上图,汽车不再被看作一个一次成型的整体,而是被分解成了许多标准的功能部件来分步设计制造。当对象们被按规则组合起来以后,就能表达预期的功能。其实世界世界就是这样组成的。平时看上去每个对象都互无关系,然而当它们按图示规则组织起来之后,踩下刹车,汽车便乖乖停住了。面向对象与面向过程根本区别:不再把世界看作是一个紧密关联的系统,而是看成一些相互独立的小零件,这些零件依据某种规则组织起来,完成一个特定的功能。“过程”通过特定规则组织起来的一些对象“表现”出来的。面向对象和面向过程的这个差别导致了整个分析设计方法的革命。分析设计从过程分析变成了对象获取,从数据结构变成了对象结构。课程内容程序设计方法OOP的基本概念对象与类数据的抽象和封装继承性多态性消息和方法程序设计方法结构化程序设计(C、PASCAL、Ada)StructuredProgramming,SP是面向过程的程序设计功能分解,逐步求精可重用性极差面向对象程序设计(C++、JAVA语言、Smalltalk语言等)ObjectOrientedProgramming,OOP把信息和对这些信息的处理作为一个整体特点抽象性、封装性、继承性、多态性结构化程序设计传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的一系列过程。这种设计方法的着眼点是面向过程的,特点是将数据与程序分开存储,即数据与数据处理分离。结构化程序设计的基本思想是采用自顶向下、逐步细化的设计方法和单入单出的控制结构。程序主要特征是,程序由过程的定义和过程的调用组成,即程序=过程+调用面向过程程序的结构特点模块22.12.2模块11.21.11.31.3.11.3.21.3.3模块33.13.23.1.13.1.2

程序实例要求读入一组整数,统计其中正整数和负整数的个数该任务的模块结构及细化过程如下1、读入整数2、统计正数、负数的个数3、输入结果正数和负数的个数为0取第一个整数2.1如数大于0,正数个数加12.2如数小于0,负数个数加12.3取下一个整数重复至统计完结构化程序设计的总结为复杂问题处理提供很好的手段,但到80年代末,这种设计方法逐渐暴露出以下缺陷:

(1)但是难用于开发大型软件(2)可维护性差,可重用性差面向对象程序设计的特点将数据和对数据的操作方法放在一起形成一个独立的整体,对象(Object)从同类对象中抽象出共性形成类(Class)一个类中的数据通常只能由本类提供的方法进行处理这些方法成为该类与外部的接口对象之间通过消息(message)进行通讯(消息传递—调用函数)属性行为表针旋钮其他机械机构调节旋钮对象对象的定义现实世界中的一个实体,可以是有形的具体的事物,无形的抽象的事件对象的特性每个对象都有一个名字,以同其它对象区别对象的特征(状态)用属性来描述对象有一组操作每一个操作决定对象的一种行为一个对象是由描述其属性的数据和定义在其上面的一组操作组成的实体,是构成系统的一个基本单位。对象的方法方法:对象能执行的操作对象实例学生张三实体对象的状态就是对象的属性值。对象名:张三对象的属性:学号:100030姓名:张三年龄:20性别:男专业:计算机年级:08级家庭地址:湛江对象操作:显示学生信息修改学生信息实例:银行帐户每个帐户是一个对象,包括帐户数据帐户号、姓名、余额等对数据的操作存款、取款、转帐。用函数来实现所有的帐户具有相同的数据属性各操作可抽象出银行帐户类因此,每一个银行帐户是银行帐户类的一个实例,在面向对象程序设计中,称每一个银行帐户是银行帐户类的一个对象。类对一组有共同的属性特征和行为特征的对象的抽象是一个抽象的概念,用来描述某一类对象所共有的,本质的属性和行为(方法)。例如从学生张三、小李等实体中抽象出“学生”类。对象和类的关系类对象类的一个具体实现,称为实例描述这类对象共有的、本质的属性和行为手机张三的手机实例抽象出手机类,手机共有的开属性:屏幕、按钮、内部结构手机行为:接、打、发信息等对象和类的关系类是对一组对象的抽象这组对象具有相同的属性结构和操作行为对象是类的一个实例有了类,才能创建对象类是创建对象的样板,它包括对创建对象的属性描述对操作行为的说明如:类---建设图纸对象----按该建设图纸建起的房子对象是程序运行时存在的实体类是抽象的,不占用内存空间。对象和变量一样占有内存空间,程序的计算任务是对过对象调用它相应的操作行为来写成的。类是一种新的数据类型使用这种类型之前,先要在源程序中说明,说明中的代码不会在内存中运行,它只在编译时存在。类的说明包括属性的说明(数据成员的集合)操作行为的说明(成员的集合)定义类属性,根据系统目的来定实例:图书馆管理系统书类定义属性:书名书号作者是否借出行为添加、修改、删除图书信息购书管理系统书类定义属性:书名书号作者书的单价行为添加、修改、删除图书信息消息传递我们把对象之间产生相互作用所传递的信息称做消息。

消息启动发送消息接收并响应消息转向消息特点:1、对象可以接收多个信息,作出多个反应。2、不同对象对相同消息的反应不同。3、消息的响应不是必需的。面向对象的特点抽象:通过特定的实例(对象)抽取共同的性质以后形成概念的过程。包括数据抽象和行为抽象。例如:学籍管理程序:1、共同属性:姓名、学号、成绩Char*name;intnumber;floatscore;2、共同行为:数据的录入、数据修改和数据的输出。

Input();modify();print();面向对象的特点封装:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立实体.用户不能直接操作数据,必须通过和数据相关的操作来访问数据。

数据隐藏:对象内部数据结构的不可访问性称为数据隐藏。汽车客车货车小轿车大客车载货载人小,速度快大,速度慢面向对象的特点继承与派生以汽车为例看客观世界描述事物的方式:当定义了一个类后,又需定义一个新类,这个新类与原来的类相比,只是增加或修改了部分属性和操作,这时可以用原来的类派生出新类,新类中只需描述自己所特有的属性和操作。面向对象程序设计提供了类似的机制:继承性大大简化了对问题的描述,大大提高了程序的可重用性,从而提高了程序设计、修改、扩充的效率。新类称为子类或派生类,原来的类称为基类。派生可以一直进行下去,形成一个派生树。B1,B2的派生类(多继承)AB1B2C1C2C3A的派生类(单继承)C3的基类B1,B2的基类A的派生类C1,C2,C3的基类B1的派生类图1-1类之间的继承与派生关系继承分类:单继承、多继承单继承:每个派生类只直接继承了一个基类的特征。多继承:多个继承派生出一个派生类的继承关系。语文、数学、英语、政治、物理、化学、生物多态性多态性指,同一个消息被不同对象接收时,产生不同结果,即实现同一接口,不同方法。高中生计

温馨提示

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

评论

0/150

提交评论