《7面向对象程序设计.pptx》由会员分享,可在线阅读,更多相关《7面向对象程序设计.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、6.1 6.1.1 : 它是采用结构化编程语句(采用结构化编程语句( 条件语句、循环语条件语句、循环语句等句等 )来编写的程序)来编写的程序。 使用这类方法设计的程序流程完全由程序员控制,使用者只能做由程序员预先安排好的事情。例例: :使用结构化编程,求使用结构化编程,求 S=1+2+3+S=1+2+3+100+100 clear s=0For i=1 to 100 step 1 s = s+iendfor? “s=” , s在求在求 S=1+2+3+S=1+2+3+100+100 过程中有两个式子过程中有两个式子 S = S + i 每次在 S中加一个 i 。 i = i + 1 每次在 i
2、 中加一个 1 。求求 S=S=a(1)a(1)+ +a(2)a(2)+ +a(3)a(3)+ + +a(100)a(100) clear s=0For i=1 to 100 step 1 S = S + + a(i)a(i) endfor? “ S= ” , S 例1:输入任意10个数要放在数组A中求出最大数并显示出来。 有三个要求: 1、输入数放在A数组中。 2、求出最大数。 3、显示出来。 1 1、输入数据放在、输入数据放在A A数组中。数组中。 clear DIMENSION A(10) For i = 1 to 10 INPUT A(+str(I,2)+)= TO A(i)A(i)e
3、ndfor2 2、求出最大数。、求出最大数。Max1=a(1)Max1=a(1) For i = 2 to 10 if A(i)A(i) max1max1 max1max1 = A(i) A(i) & & 每次使每次使 A(1)A(1)最大最大 endif Endfor3 3、显示最大数。、显示最大数。 ? “ 10 10个数中个数中最大数最大数是:是:” ,max1max1 例例2 2:用双重循环显示如下数字矩阵:用双重循环显示如下数字矩阵: 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4解:解:For i = 1 to 4 & & 外循环控制打印外循环控制打
4、印4行行 For j = 1 to 5 ? ? i & & 内循环每次打印出内循环每次打印出1行行 Endfor?Endfor 例3:输入任意10个数要放在数组A中然后由大到小排序并显示出来。 有三个要求: 1、输入数放在A数组中。 2、将A数组由大到小排序。 3、显示出来。 1 1、输入数据放在、输入数据放在A A数组中。数组中。 clear DIMENSION A(10) For i = 1 to 10 INPUT A(+str(I,2)+)= TO A(i)A(i)endfor2 2、由大到小排序、由大到小排序For j = 1 to 9 For i = j+1 to 10 if A(i
5、)A(i) A(j)A(j) TTTT = A(j)A(j) A(j)A(j) = A(i) A(i) & A(i)& A(i)和和A(j)A(j)交换交换 A(i)A(i)= TT TT endif EndforEndfor3 3、按顺序显示。、按顺序显示。 For i = 1 to 10 ?A(+ STR(i,2)+)= ,A(i)A(i)Endfor 引例:求累加和:引例:求累加和: S=1+2+3+S=1+2+3+N+N 1 1、采用面向对象编程、采用面向对象编程 ( ( 演示演示 ) ) 2 2、面向对象编程的主要步骤、面向对象编程的主要步骤 (1 1)、创建应用程序界面)、创建应用
6、程序界面表单表单; (2 2)、设置表单上需要的)、设置表单上需要的控件控件对象;对象; (3 3)、设置各)、设置各控件控件的属性;的属性; (3 3)、编写必要控件的)、编写必要控件的程序代码程序代码; 面向对象程序设计面向对象程序设计: 这类这类是面向对象,即设计的是面向对象,即设计的重要任务在于描述对象重要任务在于描述对象。 这类程序由使用者控制程序流向。这类程序由使用者控制程序流向。面向对象的编程面向对象的编程(object oriented programming,OOP) 是是通过对象的交互作用来实现程序设计的。在面向对象编程中,对象是由在面向对象编程中,对象是由类类来定义的。来
7、定义的。 第第 6 章主要掌握五个概念:章主要掌握五个概念: 1 2 3 4 5 1 1对象对象 ( P 167 P 167 ) 对象(Object)是反映客观事物属性及行为特征的描述。 例如:例如: 把某一台电视机看成是一个对象。把某一台电视机看成是一个对象。 把某一个程序窗口看成一个对象。把某一个程序窗口看成一个对象。 把某一个命令按钮看成一个对象。把某一个命令按钮看成一个对象。2 2、 类(类(ClassClass):): ( P 167 P 167 ) 类是一组对象的属性和行为特征的抽象描述类是一组对象的属性和行为特征的抽象描述。类是具有共同属性、共同操作性质的对象的集合。类是具有共同
8、属性、共同操作性质的对象的集合。 类是对象的总描述;对象是类的具体实例。类是对象的总描述;对象是类的具体实例。 类是抽象的,对象是具体的。类是抽象的,对象是具体的。 VFPVFP提供提供 3 3 个类:基类、基础类、向导类个类:基类、基础类、向导类 ( P 171 P 171 )圆柱体圆柱体纸圆柱体纸圆柱体大理石大理石圆柱体圆柱体木圆柱体木圆柱体类类对象对象圆柱体.材质:纸质纸质圆柱体.材质:大理石大理石圆柱体.材质:木质木质圆柱体.材质:(可变可变)对象属性对象属性类属性类属性(1 1)类的主要特性类的主要特性: ( P169 P169 )封装性封装性 指类的内部信息对用户是隐蔽的。指类的内
9、部信息对用户是隐蔽的。在类的引用过程中,用户只能看到封装界面上的信在类的引用过程中,用户只能看到封装界面上的信息。息。子类子类 一个子类可以拥有父类全部功能。一个子类可以拥有父类全部功能。继承性继承性 指通过继承关系利用已有的类构造指通过继承关系利用已有的类构造新类。新类。基类基类:命令按钮命令按钮( (CommandGroup)CommandGroup)子类子类:命令按钮命令按钮(UserCmdGroup)对象对象:命令按钮命令按钮(cmd数据库按钮)继承继承实体化实体化(2 2)基类:)基类:分为容器类和控件类分为容器类和控件类。(P172P172) 容器类容器类可以容纳其它对象可以容纳其
10、它对象 控件类控件类不能容纳其它对象。不能容纳其它对象。(P172) 容器类是指可容纳别的对象的类指可容纳别的对象的类。如表单属于容器类,因为可以将其它对象,如命令按钮、标签、文本框等放在它的内部。 控件类的封装比容器类更为严密,但因此也丧失了一些灵活性。控件类没有添加对象控件类没有添加对象(addobject)方法方法。 生成对象对象的常用类 (P171) - Form 表单、 Label 标签、 TextBox 文本框、 CommandButton 命令按钮、 CommandGroup 命令按钮组、 . 对象名- 由 NameName 属性属性指定。 默认对象名默认对象名- 由系统默认指定
11、。如 Form1、 Form2、 Form3、 . Label1、 Label2、 Label3、 . Text1、 Text2、 Text3、. Command1、 Command2、 Command3、. 改变对象名改变对象名- 改变 Name Name 属性属性的值。 如将: 下列默认对象改名: Label1-改为:abc Text1 -改为:Txt编号 Text2 -改为:Txt姓名 Command1 -改为:comOK 对象的层次关系对象的层次关系-引用对象引用对象 (P175) 格式: ( 表单集名 . ) 表单 . 对象 . 属性 ( 表单集名 . ) 表单 . 对象 . 方法
12、如 Form1 . Text1 . Value FormSet1 . Form1 . Text1 . Value FormA. Refresh绝对引用举例绝对引用举例 : (P175) Form1 . Label1 . Caption = “1+2+.+” Form1 . Text1 . Value = 0 Form1. Release(P175) 1、 This 表示当前对象 如: This . Form1 . Refresh 2、 ThisForm 表示当前表单 如: ThisForm . Text1. Value 相对引用相对引用(续上) 3、 ThisFormSet 表示当前表单集 4
13、、 Parent 表示父对象(上一级对象) 5、 ActiveControl 表示活动控件 6、 ActiveForm 表示当前活动表单相对引用举例相对引用举例 : (P175)ThisForm . Label1 . Caption = “1+2+.+” This. Form1 . Text1 . Value = 0 ThisForm. Refresh 3 3、 属性属性: 属性属性 描述对象特征的参数。描述对象特征的参数。 例如:窗口具有以下属性:例如:窗口具有以下属性: . .窗口的标题及窗口的大小;窗口的标题及窗口的大小; . .窗口的前景和背景颜色;窗口的前景和背景颜色; . .窗口中
14、所显示信息的内容及格式;窗口中所显示信息的内容及格式; . .窗口中显示汉字的字体、字形、字号;窗口中显示汉字的字体、字形、字号;表表6.1 ( 6.1 ( P168 ) P168 ) 列出了一个命令按钮可能有的属性。列出了一个命令按钮可能有的属性。 (1) 属性设置属性设置: 1、在设计时(通过、在设计时(通过)设置;)设置; ( 下一章专门介绍,是重点操作内容下一章专门介绍,是重点操作内容 ) 2、在运行时(通过命令)进行设置。、在运行时(通过命令)进行设置。 (2)属性设置举例属性设置举例 (P176) 对象属性通过命令设置也可以分为直接设置和结构化设置。(1) (1) 直接设置对象属性
15、直接设置对象属性 对象 . 属性= ThisForm . Label1 . Caption = “1+2+.+” This. Form1 . Text1 . Value = 0 ThisForm . Command1 . Enabled = .T.例例: : 下列语句设置下列语句设置 myform myform 表单中表单中 txt1 txt1 文本框文本框 的各种属性的各种属性: myform.txt1.Value=DATE( ) & 显示当前日期 myform.txt1.Enabled=.T. & 控件有效 myform.txt1.ForeColor=RGB(0,0,4) &黑色文本 如果
16、如果 myform 包含在一个表单集(包含在一个表单集( myformSet)中,则需要在父路径上指明,例如:中,则需要在父路径上指明,例如: myformSet. myform.txt1.Value=DATE( )(2) (2) 结构化设置属性结构化设置属性 用 WITH . ENDWITH 结构设置多个属性。例:设置设置 myform myform 表单中表单中 txt1 txt1 文本框的各种属性文本框的各种属性WITH myform.txt1 .Value = DATE( ) & 显示当前日期 .Enabled = .T. & 控件有效 .ForeColor = RGB(0,0,4)
17、&黑色文本ENDWITH 4 4、 调用对象方法调用对象方法 (P176) 、什么叫对象方法、什么叫对象方法 附属于对象的行为和动作。附属于对象的行为和动作。 如:如: Release 释放删除表单。 Refresh 重新绘制表单,刷新所有值。 、调用对象方法、调用对象方法 Thisform.txt1.SetFocus & 焦点设置在txt1上。上。 Thisform.Refresh & 刷新当前表单。 Thisform.Release & 关闭当前表单。 5 5、 VFPVFP中的事件中的事件 (P190) 1、事件事件 每个对象可能用于识别和响应的某每个对象可能用于识别和响应的某些行为和动
18、作。些行为和动作。 如:如:Click 叫单击事件叫单击事件 2、事件的触发:事件的触发: 、用户操作触发;、用户操作触发; 、程序触发;、程序触发; 每个对象都可以对被称为每个对象都可以对被称为事件事件的动作进行识别和的动作进行识别和响应响应。事件可以由一个用户动作产生,如单击鼠。事件可以由一个用户动作产生,如单击鼠标或按下一个键;也可以由程序代码或系统产生,标或按下一个键;也可以由程序代码或系统产生,如计时器。如计时器。 在在VFP中,可以激发事件的用户动作包括:单击中,可以激发事件的用户动作包括:单击鼠标、移动鼠标和按动按键。鼠标、移动鼠标和按动按键。 3 设计常见事件程序的原则设计常见
19、事件程序的原则 在在VFP中,某一事件发生时,若没有与之间相关联的中,某一事件发生时,若没有与之间相关联的代码,则不会发生任何操作。对于绝大多数事件来说,代码,则不会发生任何操作。对于绝大多数事件来说,用户不必编写代码,用户只需对少数几个关键的事件用户不必编写代码,用户只需对少数几个关键的事件编程即可。若要编写响应事件的代码,可使用编程即可。若要编写响应事件的代码,可使用“表单表单设计器设计器”的的“属性属性”窗口或在相应的对象上窗口或在相应的对象上双击双击,打,打开相应事件的代码编辑窗口后编写。开相应事件的代码编辑窗口后编写。 一段代码应置于何处,是由事件发生的顺序决定的。一段代码应置于何处,是由事件发生的顺序决定的。