第十章
面向对象程序设计基础
10.1 面向对象的概念
10.2 Visual FoxPro的面向对象支持
10.3 面向对象的程序设计方法
10.1.1 对象与类
在面向对象程序设计(Object Oriented Programming,简称为OOP)中,对象(Object)是组成程序的构件,就好象在面向过程的结构化程序设计方法(Structured Programming)中的子程序和函数的作用一样.在结构化程序设计方法中,程序设计人员把一个待求解的问题自顶向下进行分解,以便形成一个个相对简单独立的子问题,然后用子程序或函数来解决这些子问题,用子程序或函数之间的数据通信来模拟这些子问题间的联系,最后把这些子程序或函数装配起来以形成解决问题的完整程序.
10.1 面向对象的概念
在面向对象的程序设计方法中,程序设计人员不是完全按过程对求解问题进行分解,而是按照面向对象的观点来描述问题,分解问题,最后选择一种支持面向对象方法的程序语言来解决问题.在这种方法中,设计人员直接用一种称之为"对象"的程序构件来描述客观问题中"实体",并用"对象"间的消息来模拟实体间的联系,用"类"来模拟这些实体间的共性.
1.对象(Object)
在OOP方法中,作为程序构件的"对象"是对现实世界中一个实体的一种模拟工具.例如如要设计一个某高校学生学籍管理软件,所涉及到的实体包括"学生","课程","专业"等等.要模拟一个活生生的学生,需要使用一组特征数据(如姓名,籍贯,性别,身高,年龄等等)和一组行为规则(如该生对待某些外部事件的反映:受到表彰会怎样反映,受到批评会怎样反映,受到屈辱会怎样反映,遇到同学的困难时会怎样反映等)来模拟其静态特征和动态特征.
OOP方法正是用一组称为"属性"的数据模拟所描述实体(如学生)的静态特征,而用一组称为"方法程序"的程序过程模拟该实体对一些"事件"(如受到学校嘉奖)的反映.把模拟一个实体的"属性"数据和"方法程序"通过一定的形式进行"封装"就建立起了一个OOP方法中的对象.
当然,如果对被管理的成千上万个学生都这样一个个完全独立地设计"程序对象",其工作量将会大得惊人,这实际上是不可能的.OOP方法中,通过另一种称为"类"的工具对这一问题给出了一个巧妙的解决办法.
2.类(Class)
"类"是具有相同属性特征和行为规则的多个"对象"的一种统一描述.对于一个学校的全体学生,描述其特征的数据模式是相同的(当然不同"对象"的特征值会有不同).行为规则有不同的地方,也有相同的地方.如果我们侧重于描述每个个体对一些诸如观看球赛,对待他人遇到意外事件的反映等等,不同个体间的反映可能很不相同,描述其反映的"方法程序"也许无法共享.但如果将行为的选择加以一些限制,将引起学生反映的外部事件归纳为:
(1)一个新学年度到来时,学生的整体反映应该是缴费报导.
(2)当一个学年度不及格科目超过学校规定时,这一部分学生应该留级或退学.
(3)完成规定科目的学习并考试合格者,学生的整体反映是毕业离校.
在一般管理信息系统中,系统的使用者和设计者所关心的问题正是这样一些共性问题而并非一些很个体的问题,这样设计者就可以对个体的行为进行分析,归纳,抽象,形成整个群体的共同行为规范,并把这种共同的行为规范用程序设计语言描述成程序过程,和描述该群体的特征数据模式一起进行封装,这样就完成了OOP方法中一个"类"的设计.
在OOP方法中,"类"是对现实世界的一种高度抽象与概括,而"对象"则是"类"的一个实例,"对象"一定具有其属"类"的共同特征与行为规则,当然一个"对象"还可以具有其属"类"未曾规定的特征和行为规则.这一点和现实生活是非常相同的,这样的模拟和抽象比较符合人们的思维习惯,这也正是OOP方法具有强大生命力,能够获得越来越多的软件工作者欢迎并得到众多计算机开发商支持的一个基本原因.
总之,从程序设计者的角度观察,"类"是一个数据模式和若干个程序过程(称为"方法程序",一般一种行为用一个程序过程描述)经封装而形成的一个整体,它是使用信息技术对现实世界的一种模拟与抽象,而"对象"则是"类"的一个实例,用程序设计语言来说,"对象"可以不精确的理解为对一个"类"赋值的结果."对象"是OOP方法中组成程序一种构件.
3.事件与响应
"事件"是由外部实体作用在"对象"上的一个动作.在现实生活中,某人出生,死亡,其电话震铃,设定的闹钟响了以及过生日又长了一岁等等都称为一个事件,人们都会对这些事件做出一定的反映:如电话震铃就要接听电话,设定的闹钟响了可能就要去干一件什么事情,而过生日后可能要入学了等等.在OOP方法中,作用在"对象"上的事件包括对象的创立,释放,收到其他对象发来的"消息"等,对于一些可视对象,如命令按钮等,其最常见的"事件"往往是一些鼠标动作,如"单击","双击","拖放"或修改对象数据等等.当作用在对象上的某个设定"事件"发生时,与该事件相联系的"方法程序"(当然假设对象的设计者设计了该程序并与对象一同封装)就运行并完成该程序的功能.OOP就用这种机制来模拟对象对外部事件的反映并进而完成由外部事件序列所规定的功能.
- 面向对象程序设计 > 面向对象程序设计基础
-
面向对象程序设计基础
下载该文档 文档格式:PPT 更新时间:2008-05-01 下载次数:0 点击次数:2文档基本属性 文档语言: 文档格式: ppt 文档作者: lwg 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: china 分类: 创建时间: 上次保存者: fu 修订次数: 13 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 60 段落数: 240 字节数: 326799 备注: 0 演示格式: 屏幕显示 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PPT格式下载
- 更多文档...
-
上一篇:一、写出下列表达式
下一篇:面向对象程序设计语言C
点击查看更多关于面向对象程序设计的相关文档
- 您可能感兴趣的
- java面向对象程序设计 面向对象程序设计答案 c++面向对象程序设计 c面向对象程序设计 面向对象程序设计课件 面向对象程序设计教程 面向对象程序设计ppt 面向对象程序设计语言 面向对象程序设计思想
- 大家在找
-
- · 武忠祥强化班15
- · 端盖课程设计φ45
- · mathtype6.7免费下载
- · www.22888.con
- · 门铃报警器论文设计
- · cs3中文版免费下载
- · 繁星春水全文
- · iku爱酷官方下载2.4
- · 四年级数学大数的认识
- · 中药药理学试题及答案
- · 宁波园林施工员招聘
- · 职业院校发展中的现实问题
- · 加工承揽合同范本
- · 2011四川城市经济排名
- · 谭浩强c语言算法
- · 遥控水泵电路图
- · 电机正反转电路图图
- · 日本爱信自动变速箱
- · fdma+tdma
- · 初中一年级语文辅导
- · gprs套餐
- · 液压系统原理图
- · 民法通则全文
- · 诗经中的婚恋诗
- · mastercam9.1教程pdf
- · 従顺候补生009
- · 2011函授本科报名时间
- · 材料力学课件
- · 八年级生物试卷答案
- · 砌筑施工方案
- 赞助商链接