1、实验七 面向对象的程序设计一、实验目的 1 掌握面向对象程序中对象、属性、方法和事件等概念。 2 了解面向对象程序设计的特点。3 掌握对象的相对引用和绝对引用。4 掌握自定义类的创建、修改和使用。二、实验内容与环节 1. 掌握并了解根据需要向表单添加任意数量的新属性,并引用表单的其他属性和方法引用它们。 (1)表单添加新属性的环节如下: 选择“文献/新建/表单”,进入表单设计器。 选择“表单”菜单中的“新建属性”命令,打开“新建属性”对话框。 在“名称”框中输入属性名Newx。 有选择地在“说明”框中输入新建属性的说明信息。这些信息将显示在“属性”窗口的底部。 在表单的“属性”窗口的列表框中显
2、示出新建的属性Newx。(2)表单添加新方法的环节如下: 选择“表单”菜单中的“新建方法程序”命令,打开“新建方法程序”对话框。 在“名称”框中输入方法名newf。 有选择地在“说明”框中输入新建方法的说明信息。 在表单的“属性”窗口的列表框中显示出新建的方法Newf。可以双击它,打开代码编辑窗口,然后输入或修改方法的代码: Thisform.newx=Thisform.newx+5 Wait “newx=”+str(Thisform.newx) Window 若删去用户添加的属性或方法,可以选择“表单”菜单中的“编辑属性/方法程序”命令,打开对话框。然后在列表框中选择不需要的属性或方法并单击
3、“移去”按钮。(3)使用新属性和新方法。 通过“表单控件”工具栏向表单添加一个命令按钮Command1。 双击命令按钮,进入命令按钮的click代码窗口,键入以下代码:Thisform.newx=5Thisform.newf 保存并运营表单,单击命令按钮Command1,结果如图1所示。图1 自定义属性和方法的使用结果2.了解常用的事件和方法,并为不同对象设立相应的事件代码, 启动Visual FoxPro 6.0 。 在命令窗口输入命令:Create form myForm,打开表单设计器窗口。 从“文献”菜单中选择“保存”命令,保存表单文献。 过“表单控件”工具栏向表单添加一个命令按钮,在
4、属性窗口设立其Caption属性为“退出”。 从“显示”菜单中选择“代码”命令,打开代码编辑窗口。从“对象”框中选择Form1,从“过程”框中选择Load,然后在编辑区输入的代码: WAIT “引发表单Load事件!” WINDOW 从“过程”框中选择Init,然后在编辑区输入相应的代码: WAIT “引发表单Init事件!” WINDOW 从“过程”框中选择Destroy,然后在编辑区输入相应的代码:WAIT “引发表单Destroy事件!” WINDOW 从“过程”框中选择Unload,然后在编辑区输入相应的代码: WAIT “引发表单Unload事件!” WINDOW 从“对象”框中选择
5、Command1,从“过程”框中选择Click,然后在编辑区输入的代码: Thisform.release 从“文献”菜单中选择“保存”命令,保存表单文献。然后单击“关闭”按钮,关闭表单设计窗口。 在命令窗口中输入命令:DO FORM myForm从运营表单到打开表单后单击“退出”按钮,屏幕显示结果,并分析因素:3.掌握和熟悉对象的引用。 启动Visual FoxPro 6.0 。 选择“文献/新建/表单”,进入表单设计器。 在表单上添加1个标签label1,1个文本框text1和1个命令按钮command1。 在“属性”窗口,将表单的autocenter属性设为.T.(把表单的autocen
6、ter属性设为.T.,运营时,表单会自动居中在主窗口的中央),Label1的caption属性设为“欢迎使用VFP”,command1的caption属性设为“复制”,如图2所示。图2 初始属性设立 单击复制按钮,把标签label1的内容复制到文本框text1中。 编写Command1的Click事件过程代码: 第一种方法:绝对引用的事件过程代码: Thisform.text1.value=thisform.label1.caption 第二种方法:相对引用的事件过程代码:Thisform.text1.value=this.parent.label1.caption(注意:两种方法都可以实现)
7、 保存并运营表单。4.掌握自定义类的建立和使用。 启动Visual FoxPro 6.0 。 选择“文献/新建类/新建文献”,启动“类设计器”。在“新建类”对话框的“类名”文本框输入新类的名称MyClass,在“派生于”栏中为新类指定基类CommandGroup,在“存储于”栏中输入保存新类的类库名为MyLib.VCX,如图3所示,单击“拟定”按钮,系统打开“类设计器”如图4所示。图3 “新建类”对话框 将MyClass子类的ButtonCount属性值设立为4,即设立命令按钮组中包含的命令按钮个数为4,重新横向排列4个命令按钮,并将4个命令按钮的Caption属性分别设立为“首记录”,“前一
8、个”,“后一个”,“末记录”。图4 类设计器 打开代码生成器,编写MyClass子类的Click事件过程代码,代码如下:sel=This.valuedo casecase sel=1 go topcase sel=2 if !bof() skip-1 endifcase sel=3 if !bof() skip endifcase sel=4 go bottomendcasethisform.refresh 关闭类设计器。关闭类设计器后,系统将询问是否将MyClass类保存到Mylib.VCX中,回答“是“ 。 打开表单设计器,在“表单控件“工具栏中单击“查看类”按钮,选择“添加”命令,在“打开”对话框中选定自定义类库Mylib,将其添加到“表单控件”工具栏中,如图5所示。自定义类Myclass图5 自定义类的使用 至此,可以像使用其他常用类同样使用该自定义类。同学们新建一个表单,拖动该自定义类在表单中生成一个对象实例,然后把student表添加到该表单的数据环境中,保存表单,运营表单验证自定义类的使用。 5.设计一个表单,如下图所示,单击显示按钮,文本框显示“欢迎进入VFP天地!”,单击清除按钮,显示内容消失。