2012年考研专业课暑期规划之计算机

上传人:ji****n 文档编号:54484116 上传时间:2018-09-13 格式:PPT 页数:32 大小:361KB
返回 下载 相关 举报
2012年考研专业课暑期规划之计算机_第1页
第1页 / 共32页
2012年考研专业课暑期规划之计算机_第2页
第2页 / 共32页
2012年考研专业课暑期规划之计算机_第3页
第3页 / 共32页
2012年考研专业课暑期规划之计算机_第4页
第4页 / 共32页
2012年考研专业课暑期规划之计算机_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《2012年考研专业课暑期规划之计算机》由会员分享,可在线阅读,更多相关《2012年考研专业课暑期规划之计算机(32页珍藏版)》请在金锄头文库上搜索。

1、第八章 面向对象的程序设计,目 录,8.1 面向对象程序设计的基本概念,8.2 Visual FoxPro中的基类,8.3 Visual FoxPro中对象的属性、方法和事件,8.1 面向对象程序设计的基本概念,8.1.1 概述8.1.2 面向对象的基本概念,回目录,8.1.1 概述,面向对象的程序设计(Object Oriented Programming,简称OOP)是当前程序设计的主流方向,它克服了结构化程序设计方法的缺陷,是程序设计在思维和方法上的巨大进步。面向对象的程序设计以对象及其数据结构为中心,而不是以过程和操作为中心。在面向对象的程序设计中,对象是构成程序的基本单位,对象中封装

2、了描述该对象的属性、方法、事件,可以被当作基本组件构成复杂的应用。,VFP6.0不仅支持传统的结构化程序设计,而且全面引入面向对象的程序设计方法,从而根本改变了FoxPro应用程序面向过程的开发方式,把设计的重点转向对象之间的联系,而不是拘泥于具体实现的细节,不仅提高了应用程序的开发效率,同时也降低了程序设计过程中的出错机会。,返回,8.1.2 面向对象的基本概念, 对象(Object)VFP中的窗口、按钮、工具栏、文本框、对话框等都是对象。任何对象都有自己固有的特征和行为方式。,属性,事件和方法, 属性(Property)属性用来表示对象的特征和状态,如VFP对象“窗口”的属性包括在屏幕上的

3、位置、高度、宽度、背景颜色、标题、名称等。对象的属性用各种类型的数据表示。 事件(Event):每个对象都可以对事件的动作进行识别和响应。当事件发生时,该事件的过程代码将被执行。 方法(Method):方法是与对象相关的过程,是为对象完成一定功能而编写的代码,与对象紧密联系。 事件驱动工作方式 程序的执行顺序以对象为中心,采用事件驱动方式工作。, 类(Class)一个类定义了相似对象的特征和行为方式,是某一类对象的“模板”,有了类定义后,基于类可以生成这类对象中的任何一个,它们具有相同的属性和行为方式,但在属性的取值上可以完全不同,并且彼此是独立的。基于某个类生成的对象称为这个类的实例。不仅于

4、此,在某个类的基础上,还可以派生出若干个子类,子类不仅继承了父类的所有特征,还可以添加自己的特征。 类的主要特征:, 封装(Encapsulation)封装指包装并隐藏对象信息,是面向对象程序设计方法的主要特征之一。在OOP中,对象的属性和方法被封装在一段独立的源代码中,对数据的访问只能通过调用该对象的方法进行,其他对象不能直接作用于该对象内部的数据。因此,对象是一个完全封装的实体,具有模块独立性,较之传统的面向过程的程序设计方式中将数据与操作分离的方法更为方便与安全。正因为如此,在面向对象程序设计中用户可以集中精力描述和控制对象的属性与方法,而忽略对象内部实现的具体细节。, 子类(SubCl

5、ass)以某个类的定义为起点创建的新类称为子类,前者称为父类。一个子类可以拥有父类的全部功能,也可以增加自己特有的属性和方法,使它具有与父类不同的特殊性。定义子类使得用户可以根据现有的类快速建立起一个新类,而不必从零开始编写代码,是减少代码的途径之一。, 继承(Inheritance)从现有的类建立新类的过程称为继承,继承是面向对象语言提供的一种重要机制。由于继承性,使派生类(或子类)具有父类的全部功能和扩展新类的能力,类之间的层次结构就是靠继承关系维系的。继承性还可以使在一个类上进行的改变反映到它所有的子类中,这种自动更新不单节省了系统开发的时间和精力,同时也减少了维护代码的难度,从而提高了

6、代码的易维护性。,返回,8.2 Visual FoxPro中的基类,8.2.1 Visual FoxPro基类,8.2.3 容器与控件,8.2.4 对象的引用,8.2.2 Visual FoxPro中类的层次,回目录,8.2.1 Visual FoxPro基类,VFP为了一些实现常用功能,提供了一些类称为基类(BaseClass),用户可以直接根据这些类创建相应的对象实例,也可以扩展基类创建用户自定义类,从而减少编程工作量,大幅度提高应用程序的开发效率。,8.2.2 Visual FoxPro中类的层次,不是由其他类派生的类叫基类,基类可以作为定义新类的基础。在VFP中,基类由系统提供,处于所

7、有自定义类的最上层,由它可以派生出多个用户自定义类,用户自定义类又可以派生出新的用户自定义类,由此形成了类的层次结构。,8.2.3 容器与控件,VFP提供的基类分为两大类型: 容器类(Container):能包含其他对象控件类(Control):不能包含其他对象,返回,8.2.4 对象的引用,在VFP中,对对象的操作是通过对象的引用实现的。引用一个对象,必须指明这个对象相对于容器的层次关系,就像在文件系统里引用一个文件必须指明文件的路径一样。对象的引用方式包括绝对引用和相对引用。, 绝对引用 通过提供对象的完整的容器结构层次 引用对象称为绝对引用。 特点: 1、与对象所处的层次无关,不论当前对

8、象位于嵌套层次中的哪一层,总是从最外层开始逐层给出父对象直至该对象本身,例如,利用绝对引用在下图中引用Command2的Caption属性: FormSet1.Form1.PageFrame1.Page1.Command2.Caption, 相对引用通过对象与容器之间的相对关系引用对象称为相对引用。 特点: 以当前对象所处的位置为基点,与对象所处的层次相关。,相对引用通常使用几个特殊的属性和关键字,它们的含义如下表所示:,Form1,Pageframe1,Page1,Page2,Commandgroup1,command1,command1,command3,上页,下页,Eg: Command

9、3是当前对象,引用Command3的Caption属性:This.Caption This代表当前对象Command3。 PageFrame1是当前对象,引用Command1的Caption属性比较简单的表示方法有: This.Page1.Commandgroup1.Command1.Caption This代表PageFrame1 ThisForm.PageFrame1.Page1.Commandgroup1.Co mmand1.Caption ThisForm代表表单对象(3)PageFrame1是当前对象,引用Form1 ThisForm ThisForm代表表单对象 This.pare

10、nt,(4)PageFrame1是当前对象,引用command3的Caption ThisForm.Command3.Caption ThisForm代表表单对象 This.Parent.Command3.Caption,返回,8.3 VFP中对象的属性、方法和事件,8.3.1 属性,8.3.2 方法,8.3.3 事件,回目录,8.3.1 属性, Visual FoxPro对象的常见属性, 设置对象的属性值在属性窗口设置在事件代码中设置通过代码设置 【语法格式】 Parent.Object.Property=Value 【功能】 设置一个对象指定属性的值。 【说明】 Property: 属性名

11、。 Value: 为指定属性设置的属性值,返回,8.3.2 方法, Visual FoxPro对象的常见方法, 调用对象的方法方法不同于一般的过程,它与对象密切相关。因而方法的调用方式也与一般过程的调用方式不同,必须针对某个对象显式地调用。 【语法格式】 Parent.Object.Method,返回, Visual FoxPro对象的常见事件,8.3.3 事件,注意:1、理解常用事件的含义2、弄清相似事件发生顺序,Form的Load、Init、Destrory、UnLoad事件的发生顺序依次是: LoadInitDestoryUnload,Form的Init事件与Form的子对象的Init事

12、件发生是:Form的子对象的Init先于Form的Init,Form的Destory事件与Form的子对象的Destory事件发生是: Form的Destory先于Form的子对象的Destory,Eg:在表单中添加Command按钮则Form的Load、Init、Destory、UnLoad事件和Command的Init、Destory事件的顺序,启动表单时: Form.LoadCommand.InitForm.Init 关闭表单时: Form.Destory Command.Destory Form.Unload, 调用对象的事件事件代码可以在事件引发时执行,也可以像方法一样被显式调用。 【语法格式】 Parent.Object.Event,返回,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号