第1章 面向对象编程的原理ppt课件_第1页
第1章 面向对象编程的原理ppt课件_第2页
第1章 面向对象编程的原理ppt课件_第3页
第1章 面向对象编程的原理ppt课件_第4页
第1章 面向对象编程的原理ppt课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

.,第一章面向对象编程的原理,.,软件危机,如何表示现实实体如何设计开放接口如何保证可重用性和可扩展性如何开发能适应变化如何开发能提高开发效率如何提高软件质量如何管理开发计划如何让软件开发实现产业化,.,软件质量,正确性可维护性可重用性和可扩展性开放性和互用性可移植性安全性完整性用户界面友好程度,.,第8章类,0面向对象的概述1结构2类3静态成员与友员4构造函数与析构函数,.,面向过程编程,图1.1,程序=(模块+模块+)模块=(算法)+(数据结构),.,在面向过程的程序中,所有数据是公开的。一个函数可以使用和改变任意一组数据,而一组数据又可能被多个函数使用。这种数据与运算相分离的结果失去了数据的安全性。一旦数据结构发生变化,相关的算法也必须随之改动。对于相同的数据结构,若操作不同,也要编写不同的程序。因此,面向过程的程序代码重用性不好。程序模块的划分,因人而异,缺乏统一的标准,为程序员之间的交流带来诸多不便。另外,面向过程程序设计的逐步细化过程前后关系密切,描述符号不同,一旦先期需求改变,将直接影响后继需求分析的描述,给程序的维护带来诸多不便。,.,面向过程的程序设计方法本质上是过程驱动的。虽然在处理问题的方法上符合人们思考问题的规律,但它将数据与操作数据的函数分离开来,未能如实地反映客观世界的规律。事实上,客观世界中的事物总是分门别类的。每个类有自己的数据与操作数据的方法,二者是密不可分的。,.,面向对象程序设计,面向对象程序设计的基本思想是现实世界由各种对象组成,任何客观存在的事物都是对象,复杂的对象是由简单对象结合而成的。面向对象程序设计的基石是:类和对象。类是具有相同属性结构和操作行为的一组对象共性的抽象;对象是描述客观事物的属性结构及定义在该结构上的一组操作的结合体。在此,程序被描述为:程序=(对象+对象+)对象=(数据结构+算法)对象之间通过消息和方法机制完成相应的操作。,.,程序员根据具体情况,先设计一些类。每个类有数据成员和操作这些数据的成员函数。然后,定义各个类的对象,并将数据赋给各个对象。对象的数据是私有的,外界只能通过公有的成员函数才能访问该对象的数据。这样就保证了数据的安全性,而且程序员也易于对数据进行跟踪。类的继承性使得每一个新类得以继承基类、父类的全部属性和方法,并加入自己特有的属性和方法,从而使得代码的重用成为可能。类对数据结构和算法的绑定使得程序便于修改和调试,便于程序的维护和扩充。,.,每个对象是数据和操作代码的完整结合体。各个对象通过消息传递而相互作用。所以,面向对象的程序本质上是事件驱动的。这一点很重要,它使得一个原先很复杂的程序变得简单清晰。这种优势在可视化程序设计中极为明显,如图1.2所示。,.,图1.2,.,基本概念,1面向对象面向对象是一种认识客观世界的世界观,是从结构组织角度模拟客观世界的一种方法,人们在认识和理解现实世界的过程中,普遍运用以下三个构造法则:(1)区分对象及其属性,如区分车和车的大小;(2)区分整体对象及其组成部分,如区分车和车轮;(3)不同对象类的形成及区分,如所有车的类和所有船的类。2对象(Object)对象是对一组信息及其上同的操作的描述。如:一辆汽车是一个对象,它包含了汽车的信息(如颜色、型号、载重量等)及其操作(如启动、刹车等);一个窗口是一个对象,它包含了窗口的信息(如大小、颜色、位置等)及其操作(如打开、关闭等)。3属性(Property)即对象所包含的信息。如:窗口的宽度(form1.width)属性可以在设计对象时确定,也可以在程序运行时读取和修改(如:W=form1.width;form1.width=100)。,.,4方法(Methord)即对象所因有的各种操作。如:窗口关闭(form1.close)这种操作的过程对外是封闭的,即用户只能看到这一方法实施后的结果。这相当于事先已经设计好的各种过程,只需要调用就可以了,用户不必去关心这一过程是如何编写的,事实上,这个过程已经封装在对象中,用户也看不到。对象的这一特性,即是对象的封装性5事件(Event)即对象在执行某一操作后激发并执行的一个或多个过程。这些过程对用户是透明的,用户可以为这个过程编写自己的程序代码,以完成特定的操作。如:窗口对象在执行打开过程时,就会激活一个Active事件(过程),用户可以自己编写这一过程的代码,以便在打开这个窗口时完成一些自己所要求的任务,如打开一个数据库,对某个变量进行初始化等等,.,.,.,.,注意,消息传递机制与传统的过程调用机制的意义是截然不同的,发送消息仅仅是触发对象自动机,有时提供一些附加数据,接受对象响应消息后按照消息模式找到匹配方法,因而同样的输入参数(触发事件)可能因对象状态的不同得到不同的终态(若有输出则结果不同)。而过程调用则相反,只要有相同的输入,输出总是恒定的。但不否认可以借用过程调用机制来实现消息传递,此时只要在匹配方法后考虑到接受对象的当前状态即可。因而,系统可以简单地看作一个彼此通过传递消息而相互作用的对象集合。总之,面向对象的整体概念可具体表示如下:面向对象数据抽象数据抽象类型继承性,.,面向对象程序设计的特征,抽象性-许多实体的共性产生类;封装性-类将数据和操作封装为用户自定义的抽象数据类型;继承性-类能被复用,具有继承(派生)机制;多态性-具有动态联编机制。,.,面向过程以算法为中心,由算法完成对数据的操作,面向对象技术是以属性为中心,以消息和方法机制完成对对象的操作,对象作为数据而不是作为过程被描述。继承指的是子类继承父类的数据

温馨提示

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

评论

0/150

提交评论