第 10章 面向对象可视化编程基础第 10 章面向对象可视化编程基础面向对象程序设计的主要特点是其抽象方法接近于人的自然思维方式,很容易被应用人员所接受,它的最大优点是开发效率高,代码重用率高 。
第 10章 面向对象可视化编程基础
10.1 面向对象程序设计的基本概念
10.1.1 对象和类
10.1.2 继承、封装和多态
10.1.3 属性、事件和方法
10.2 Visual FoxPro中类的操作
10.2.1 Visual FoxPro的基类
10.2.2 创建类
10.2.3 类的设置
10.2.4 类的修改
10.3 Visual FoxPro中对象的操作
10.3.1 由类创建对象
10.3.2 创建对象的引用
10.3.3 为对象设置属性
10.3.4 调用方法程序
10.3.5 触发事件教学内容第 10章 面向对象可视化编程基础
1,对象 ( Object)
对象是面向对象编程的基本元素 。
对象是反映客观事物属性及行为特征的描述 。 由于客观世界中的实体通常都既具有静态的属性,又具有动态的行为,所以在面向对象程序设计中的对象被定义为由属性和相关方法组成的包 。 属性用来表示对象的状态,方法用来描述对象的行为 。
10.1 面向对象程序设计的基本概念
10.1.1 对象和类第 10章 面向对象可视化编程基础
2,类 ( Class)
类是一组对象的属性和行为特征的抽象描述 。 在 Visual
FoxPro系统中,类就象是一个模板,对象都是由类生成的,
类定义了对象所有的属性,事件和方法,从而决定了对象的属性和它的行为 。
类是静态概念,对象是动态概念 。 通常,我们把基于某个类生成的对象称为这个类的实例 。
Visual FoxPro中有以下三种类:
基类,子类,用户自定义类第 10章 面向对象可视化编程基础
1,继承性 ( Inheritance)
类的继承性指通过继承关系利用已有的类构造新类 。
在创造对象时,可以利用父类派生出一个子类 。 子类不但具有父类的全部属性和方法,而且还允许用户根据需要修改对已有的属性和方法进行修改,或者添加新的属性和方法 。
10.1.2 继承、封装和多态第 10章 面向对象可视化编程基础
2,封装性 ( Encapsulation)
类的封装性指类的内部信息对用户是隐蔽的 。
封装的目的是信息隐藏,把对象的内部代码隐藏起来 。
用户只需知道该对象具有什么功能以及如何使用该对象,而不必了解这些功能是如何实现的 。
3,多态性 ( Polymorphism)
类的多态性指相同的语言结构可以代表不同的实体,或者是指对不同的实体进行操作 。
多态性使得高层的代码只写一次,而通过提供不同的底层服务来满足代码复用的要求 。
第 10章 面向对象可视化编程基础
1,属性 ( Property)
属性用来表示对象的状态 。
对象的每一种属性,都是与其他对象加以区别的特性,都具有一定的含义,并赋予一定的值 。
对象的属性值既能在设计时刻也能在运行时刻进行设置 。
10.1.3 属性、事件和方法第 10章 面向对象可视化编程基础
2,事件 ( Event)
事件是一种预先定义好的特定动作 。
事件集合是固定的,用户不能创建新的事件 。
3,方法 ( Method)
方法也称方法程序,是对象能够执行的操作,也即类中所定义的服务 。
方法集合可以由用户无限扩展 。
,方法,与,事件,既有相似之处,也有不同 。
第 10章 面向对象可视化编程基础基类可以分成容器类和控件类 。 相应地,可分别生成容器 ( 对象 ) 和控件 ( 对象 ) 。
1,容器类从容器类派生的对象可以包容其他对象,并且允许访问这些对象 。
Visual FoxPro中的容器类,
表单集,表单,表格,( 表格 ) 列,页框,页,命令按钮组,选项按钮组,工具栏,容器,控件 。
2,控件类从控件类派生的对象不能容纳其他对象,它没有容器类灵活 。
10.2 Visual FoxPro中类的操作
10.2.1 Visual FoxPro的基类第 10章 面向对象可视化编程基础
1,用类设计器创建类
2,用命令创建类
CREATE CLASS 新类名 [OF 新类所在库名 ]
[AS 父类名 [FROM 父类所在类库名 ]]
10.2.2 创建类图 10.2,新建类”对话框第 10章 面向对象可视化编程基础
1,设置类对象的属性值
2,设计类对象的方法程序
10.2.3 类的设置
10.2.4 类的修改注意:对类的修改将影响所有的子类和基于这个类的所有对象 。
第 10章 面向对象可视化编程基础
10.3 Visual FoxPro中对象的操作
10.3.1 由类创建对象由类创建对象可使用函数,CreateObject( ),其命令格式为:
对象名 = CreateObject(类名 )
第 10章 面向对象可视化编程基础对象的嵌套层次关系,如图 10.6。
如果要引用某个对象,需要指明对象在嵌套层次中的位置。
表 10.3 容器层次中的对象引用属性或关键字
10.3.2 创建对象的引用属性或关键字 引 用
Parent 当前对象的直接容器对象
This 当前对象
ThisForm 当前对象所在的表单
ThisFormSet 当前对象所在的表单集第 10章 面向对象可视化编程基础对象的引用有两种方式:绝对引用和相对引用 。
1,绝对引用从最高容器开始逐层向下直到某个对象为止的引用称为绝对引用 。
2,相对引用从正在为编写事件代码的对象出发,通过逐层向高一层或低一层直到另一对象的引用称为相对引用 。
第 10章 面向对象可视化编程基础
10.3.3 为对象设置属性属性可以在设计时设置也可在运行时设置,但也有一些属性是只读的 。
在,属性,窗口中进行设置 。
使用命令设置对象属性:
对象的父类名,当前对象名,属性名 =属性值设置对象的多个属性,
WITH 〈 路径 〉
〈 属性 〉
ENDWITH
第 10章 面向对象可视化编程基础调用方法程序的语法为:
父类名,对象名,方法名 [(参数表 )]
注意:
在表达式中,有返回值的方法程序必须以圆括号结尾。
传递给方法程序的参数必须放在方法程序名后面的圆括号中。
10.3.4 调用方法程序第 10章 面向对象可视化编程基础只有当事件发生时,对应的事件代码才被执行 。
由系统触发事件,由用户触发事件触发事件的命令格式为:
父类名,对象名,事件名 [(参数表 )]
基类的事件集合是固定的,不能进行扩充 。 每个类都可识别固定的默认事件集合,它的最小事件集包括 Init、
Destroy和 Error事件 (show) 。
10.3.5 触发事件第 10章 面向对象可视化编程基础在容器对象的嵌套层次中,事件的处理遵循独立性原则,
即每个对象识别并处理属于自己的事件。
例外:对于选项按钮组与命令按钮组来说,若组中个别按钮没有编写事件处理代码,则当事件发生时将执行组事件的处理代码。
第 10章 面向对象可视化编程基础
10.1 面向对象程序设计的基本概念
10.1.1 对象和类
10.1.2 继承、封装和多态
10.1.3 属性、事件和方法
10.2 Visual FoxPro中类的操作
10.2.1 Visual FoxPro的基类
10.2.2 创建类
10.2.3 类的设置
10.2.4 类的修改
10.3 Visual FoxPro中对象的操作
10.3.1 由类创建对象
10.3.2 创建对象的引用
10.3.3 为对象设置属性
10.3.4 调用方法程序
10.3.5 触发事件教学内容第 10章 面向对象可视化编程基础
1,对象 ( Object)
对象是面向对象编程的基本元素 。
对象是反映客观事物属性及行为特征的描述 。 由于客观世界中的实体通常都既具有静态的属性,又具有动态的行为,所以在面向对象程序设计中的对象被定义为由属性和相关方法组成的包 。 属性用来表示对象的状态,方法用来描述对象的行为 。
10.1 面向对象程序设计的基本概念
10.1.1 对象和类第 10章 面向对象可视化编程基础
2,类 ( Class)
类是一组对象的属性和行为特征的抽象描述 。 在 Visual
FoxPro系统中,类就象是一个模板,对象都是由类生成的,
类定义了对象所有的属性,事件和方法,从而决定了对象的属性和它的行为 。
类是静态概念,对象是动态概念 。 通常,我们把基于某个类生成的对象称为这个类的实例 。
Visual FoxPro中有以下三种类:
基类,子类,用户自定义类第 10章 面向对象可视化编程基础
1,继承性 ( Inheritance)
类的继承性指通过继承关系利用已有的类构造新类 。
在创造对象时,可以利用父类派生出一个子类 。 子类不但具有父类的全部属性和方法,而且还允许用户根据需要修改对已有的属性和方法进行修改,或者添加新的属性和方法 。
10.1.2 继承、封装和多态第 10章 面向对象可视化编程基础
2,封装性 ( Encapsulation)
类的封装性指类的内部信息对用户是隐蔽的 。
封装的目的是信息隐藏,把对象的内部代码隐藏起来 。
用户只需知道该对象具有什么功能以及如何使用该对象,而不必了解这些功能是如何实现的 。
3,多态性 ( Polymorphism)
类的多态性指相同的语言结构可以代表不同的实体,或者是指对不同的实体进行操作 。
多态性使得高层的代码只写一次,而通过提供不同的底层服务来满足代码复用的要求 。
第 10章 面向对象可视化编程基础
1,属性 ( Property)
属性用来表示对象的状态 。
对象的每一种属性,都是与其他对象加以区别的特性,都具有一定的含义,并赋予一定的值 。
对象的属性值既能在设计时刻也能在运行时刻进行设置 。
10.1.3 属性、事件和方法第 10章 面向对象可视化编程基础
2,事件 ( Event)
事件是一种预先定义好的特定动作 。
事件集合是固定的,用户不能创建新的事件 。
3,方法 ( Method)
方法也称方法程序,是对象能够执行的操作,也即类中所定义的服务 。
方法集合可以由用户无限扩展 。
,方法,与,事件,既有相似之处,也有不同 。
第 10章 面向对象可视化编程基础基类可以分成容器类和控件类 。 相应地,可分别生成容器 ( 对象 ) 和控件 ( 对象 ) 。
1,容器类从容器类派生的对象可以包容其他对象,并且允许访问这些对象 。
Visual FoxPro中的容器类,
表单集,表单,表格,( 表格 ) 列,页框,页,命令按钮组,选项按钮组,工具栏,容器,控件 。
2,控件类从控件类派生的对象不能容纳其他对象,它没有容器类灵活 。
10.2 Visual FoxPro中类的操作
10.2.1 Visual FoxPro的基类第 10章 面向对象可视化编程基础
1,用类设计器创建类
2,用命令创建类
CREATE CLASS 新类名 [OF 新类所在库名 ]
[AS 父类名 [FROM 父类所在类库名 ]]
10.2.2 创建类图 10.2,新建类”对话框第 10章 面向对象可视化编程基础
1,设置类对象的属性值
2,设计类对象的方法程序
10.2.3 类的设置
10.2.4 类的修改注意:对类的修改将影响所有的子类和基于这个类的所有对象 。
第 10章 面向对象可视化编程基础
10.3 Visual FoxPro中对象的操作
10.3.1 由类创建对象由类创建对象可使用函数,CreateObject( ),其命令格式为:
对象名 = CreateObject(类名 )
第 10章 面向对象可视化编程基础对象的嵌套层次关系,如图 10.6。
如果要引用某个对象,需要指明对象在嵌套层次中的位置。
表 10.3 容器层次中的对象引用属性或关键字
10.3.2 创建对象的引用属性或关键字 引 用
Parent 当前对象的直接容器对象
This 当前对象
ThisForm 当前对象所在的表单
ThisFormSet 当前对象所在的表单集第 10章 面向对象可视化编程基础对象的引用有两种方式:绝对引用和相对引用 。
1,绝对引用从最高容器开始逐层向下直到某个对象为止的引用称为绝对引用 。
2,相对引用从正在为编写事件代码的对象出发,通过逐层向高一层或低一层直到另一对象的引用称为相对引用 。
第 10章 面向对象可视化编程基础
10.3.3 为对象设置属性属性可以在设计时设置也可在运行时设置,但也有一些属性是只读的 。
在,属性,窗口中进行设置 。
使用命令设置对象属性:
对象的父类名,当前对象名,属性名 =属性值设置对象的多个属性,
WITH 〈 路径 〉
〈 属性 〉
ENDWITH
第 10章 面向对象可视化编程基础调用方法程序的语法为:
父类名,对象名,方法名 [(参数表 )]
注意:
在表达式中,有返回值的方法程序必须以圆括号结尾。
传递给方法程序的参数必须放在方法程序名后面的圆括号中。
10.3.4 调用方法程序第 10章 面向对象可视化编程基础只有当事件发生时,对应的事件代码才被执行 。
由系统触发事件,由用户触发事件触发事件的命令格式为:
父类名,对象名,事件名 [(参数表 )]
基类的事件集合是固定的,不能进行扩充 。 每个类都可识别固定的默认事件集合,它的最小事件集包括 Init、
Destroy和 Error事件 (show) 。
10.3.5 触发事件第 10章 面向对象可视化编程基础在容器对象的嵌套层次中,事件的处理遵循独立性原则,
即每个对象识别并处理属于自己的事件。
例外:对于选项按钮组与命令按钮组来说,若组中个别按钮没有编写事件处理代码,则当事件发生时将执行组事件的处理代码。