2011
VFP 复习材料
——第十章 ——第十章 面向对象的程序设计
§10.1 §10.2 §10.3 §10.4
基本概念 定义类的程序方式 利用类
设计器定义类 创建和使用类库
焕颖复习材料 2011/1/3
第十章
面向对象的程序设计
§10.1 基本概念
一、对象与类
什么是对象 对象:现实生活中的每一个事物都是一个对象。 属性:对象所具有的固有特征。对象的属性一般用各种类型的数据来表示。 【如窗口的属性有 show,hide 等等】 方法:对象可移植性的动作或它的行为。 什么是类 类是对象的集合,对象是类的实例。一个类包含了相似的有关对象的特征和行为方法, 它是某类对象的一个蓝图和框架。 通常把 “类” 看做制造对象的一个 “模子” “模板” 或 。 【注意: 一个类尽管封装了相似的有关对象的特性和行为方法, 但是类知识实例对象的 抽象,并不实行人和行为操作。它仅比表明该怎样做,而实际的行为操作则是由对象来 完成的。 】 创建对象函数 CreateObject( ) 该函数返回一个对象引用,它并不是对象本身,而是指向该对象真实信息的指针,通常 该指针存放在某个内存变量或数组元素中。 【例 10-1】 例 My form1=CreateObject(“Form”) With myform2 &;&;创建 Myform1 对象 .caption=”SQWform” Myform=Myform1 Myform1.Show &;&;显示 myform1 表单 &;&;修改窗口标题为“SQWform” ? “myform1.name=”,myform1.name .left=80 Wait window .top=10 .height=300 Myform2=createobject(“form”) Wait window Myform2.show .caption=”wzform” Wait window &;&;修改窗口标题为“wzform” .left=120 .top=100 *下面一段代码修改了对象 myform2 的 Wait window 某些属性。 *“with…… ……endwith”命令中可以重新 …… 指定对象的各种属性, 也可以执行对象 方法。 *注意对象和方法的左边有字符“.” 字符“ 字符 ” *其中 “wait window” VFP 暂停命令, 是 为使用户能够看见各种标题的窗口。 .hide &;&;将 myform2 对象隐藏 Wait window Endwith Release myform1,myform2 &;&;将两个对象释放
对象属性的访问 对象引用〉 〈属性或方法〉 ① 〈对象引用〉.〈属性或方法〉 例如:myform1.name——对象属性的引用 Myform2.show——对象方法的引用 这种通过提供对象引用的名字来标识某对象的引用叫做绝对引用。 引用对象的属性和方法的另一种语法形式: 属性或方法〉 ② Parent.object. 〈属性或方法〉 ——其中的 parent 代表容器类对象,object 表示容器中的对象 【例 10-2】 例 Myform1mand1.visible=.t. Myform1=createobject(“form”) Myform1mand1.left=80 &;&;创建 form1 对象 Myform1.show Myform1mand1.top=80 Wait window &;&;显示 form1 表单对象 Release myfrom1 _________________________________ *下面的程序在表单 myform1 中添加 command1 按钮对象
,再修改该对象的 一些属性 *commandbutton 是基本的控件类之一 例 10-2 中修改属性的语句可以被以下 语句替换: With myform1mand1 &;&;myform1mand1 就是这种引用 .caption=”退出” .visible=.t. .left=80 .top=80 Endwith
Myform1.addobject(“command1,comma ndbutton”) &;&;添加按钮控件 Myform1mand1.caption=” 退 出 ” &;&;给 command1 的 caption 属性赋值 带返回值得调用方法: 调用的方法要返回一个值,则该方法必须以右括号结尾;如果有参数传递给方法程序, 则参数必须依次放在该方法名后面的括号中。 如:myform1.addobject(“command1”,”commandbutton”)
二、类的特征和基类
类的特征 1. 封装性:即将数据和处理数据的操作放在一起。 2. 层次性:类可以又已存在的类派生而来,类之间的内在联系可以用累的层次来描述。在 这种层次结构中,处于上层