第7章 面向对象的程序设计基础
Visual FoxPro 9.0 基础教程第7章 面向对象程序设计基础

类的事件和方法的定义
类的属性的定义
对象的操作
由类创建对象 objectname =createobject(classname) 设置对象的属性 父类.对象.属性=值 mand1.Caption=“退出” 调用对象的方法和触发对象的事件 Parent.Object.Method Parent.Object.Event 对象触发则执行事件的对应代码
7.1.2 类的概念
类(Class) 所谓类,就是一组对象的属性和行为特征的抽象描述。或者说,类是具有共同属性、共同操作性质的对象的集合。 类是对象的抽象描述;对象是类的实例。类是抽象的,对象是具体的。
7.2.1 基类
基类又可以分成容器类和控件类: 容器类(Containers class)可以容纳其它对象,并允许访问所包含的对象。如表单,自身是一个对象,它又可以把按钮、编辑框、文本框等放在表单中。 控件类不能容纳其它对象,它没有容器类灵活。如文本框,自身是一个对象,在文本框中不可放其它对象。由控件类创造的对象,是不能单独使用和修改的,它只能做为容器类中的一个元素,通过由容器类创造的对象修改或使用。
面向对象的可视化程序设计方法举例
7.1.1 对象的概念
对象(Object) 对象是反映客观事物属性及行为特征的描述。 对象是面向对象编程的基本元素,是“类”的具体实例。 属性(Properties) 对象的属性特征标识了对象的物理性质;对象的行为特征描述了对象可执行的行为动作。 对象的每一种属性,都是与其它对象加以区别的特性,都具有一定的含义,并赋予一定的值。
设计对象的两种方式
用编程方式设计对象 用面向对象方式设计对象
对象设计实例:编程方式
form1.SHOW 调用方法
程序设计概论期末考试范围答案

第一章程序设计基础知识一、基础题1.以下关于算法的描述中,错误的是(D)A.算法中描述的操作都是用已经实现的基本运算组成的B。
算法必须由计算机程序实现C.算法应该易于理解、易于实现和易于调试D.算法不应该处理输入的非法数据2.以下哪项不属于数据的逻辑结构(A)A.单链表B.输C.图D.集合5.(B)程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。
A.面向对象B.结构化C.函数式D.事件驱动6.强调以现实世界中的客观事物为中心来建立问题域模型,这种程序设计方法成为(C)A.事件驱动程序设计B.结构化程序设计C.面向对象程序设计D.函数式程序设计7.以下程序段是用(B)程序设计语言编写的。
MOV AX,ASUB AX,BMOV C,AXHLTA.机器B.汇编C.C#D.Java10.下列关于解决方案的叙述中,不正确的是(B).A.一个解决方案可以包含多个项目B.解决方案可以包含的项目只能是类库C.利用解决方案资源管理器可以管理解决方案D.解决方案可以将多个项目组织在一起形成一个工作单元二、应用题1.简述程序设计的步骤.答:(1)分析问题:明确要解决什么问题(2) 设计算法:数据结构和算法(3)编写程序:将算法用程序设计语言描述出来(4)调试运行:语法错误、语义错误、异常4.简述C#语言的特点.答:(1)完全面向对象:具有面向对象语言的一切特性(2)简单易学:熟悉C、C++或Java即可掌握C#语言(3)安全:避免使用指针;自动内存管理和垃圾回收;使用委托取代函数指针.(4)跨平台:可以运行在不同操作系统上。
(5)跨语言:与任何支持。
NET的语言互相交换信息(6)强大的Web编程能力: Web应用程序第三章数据与变量一、基础题1。
以下不属于C#语言中基本数据类型的是(D)A.整数类型B。
浮点类型C.字符类型D。
枚举类型2.使用变量a存放数据-389,则将变量a定义为(B)类型最为合适.A。
上海交大面向对象程序设计C课件第7、8章

类对象作为成员实例
#include <iostream.h>
#include <string.h>
class girl { char name[10]; int age;
public:girl(char *n, int d) {strcpy(name,n); age=d;}
void disp() {cout<<name<<" "<<age<<" \n";} };
class A { int x;
public: A(int i) {x=i;} int getx() const { x =7; //错误,修改了数据成员x return x;}
};
const的其他用法
• 如果以“指针传递〞方式的函数返回值加 const修饰,那么函数返回值的内容不能被修 改,该返回值只能被赋值给加const修饰的同 类型指针。
void main()
{ A a1, a2(12), a3(1,3); //或者:A a1,a2=12,a3(1,3);
B b1, b2(789, 111, 333);}
执行结果
A... x=0 y=0 A... x=12 y=0 A... x=1 y=3 A... x=0 y=0 B... x=0 A:x=0 y=0 A... x=111 y=333 B... x=789 A:x=111 y=333
• A a(100); //对象a的SIZE的值为100
• A b(200); //对象b的SIZE的值为200
const对象与const成员
• 常量定义 • 常量对象 • 常量成员 • 整个类的常量 • const的其他用法
第七章 面向对象的程序设计

第七章面向对象的程序设计本章是面向对象的程序设计。
与第五章介绍的面向过程的结构化程序设计不同,主要介绍面向对象程序设计的基础知识,包括面向对象的基本概念以及Visual FoxPro支持的面向对象的编程技术,详尽介绍了对各类控件的选择与使用方法。
在对诸如表单等各类控件对象的设计、操作上,面向对象的编程技术有自己的独特之处,但在所有对象的各种事件和方法的程序代码设计中,仍然使用到结构化的程序设计方法。
本章的主要内容是面向对象程序设计的理论基础,其程序设计的基本目标是设计出能在可视化环境下运行的应用程序窗口界面—表单。
7.1 学习提要1.学习目标与要求通过本章学习,读者应达到以下要求:⑴了解对象、类等基本概念;⑵理解对象的属性、方法和事件;⑶熟练掌握表单的基本设计、操作和应用;⑷掌握常用控件的设计与使用。
⑸熟练掌握常用事件、方法的过程代码的设计方法。
⑹了解自定义类的创建和使用方法。
2.重点与难点:⑴本章重点:对象与类以及属性、方法和事件等基本概念;表单的设计与应用;常用控件属性、事件和方法的选择与运用。
⑵本章难点:本章的重点即为本章的难点3.主要知识点⑴面向对象的概念①对象、类②属性、方法、事件③Visual FoxPro 中的基类⑵表单的创建与基本操作①表单的创建使用“窗体设计器”或“表单向导”创建表单。
②表单的修改、运行使用“窗体设计器”编辑修改表单。
使用菜单或命令方式运行表单。
③表单的属性、事件和方法表单常用属性的设置,表单的常用事件、常用方法。
④设置表单的数据环境数据环境的概念,数据环境的设置。
⑶表单常用控件①表单常用控件的基本操作控件对象的选定,移动位置,改变大小,剪切、复制与粘贴,删除,布局设置。
②常用控件对象标签控件,命令按钮与命令按钮组控件,文本框与编辑框控件,选项组和复选框控件,列表框和组合框控件,容器与表格控件,页框控件,计时器与微调控件,图像控件等。
③控件对象的常用属性设置Caption属性,Name属性,Alignment属性,ButtonCount属性,BackColor属性,BorderColor属性,BorderStyle属性,Enabled属性,ForeColor属性,InputMask属性,PasswordChar属性,Picture属性,Height属性,Width属性,Left属性,Top属性,Value属性,Visible属性,FontName属性,FontSize属性,ControlSource属性。
Python课件PPT:第7章 对象与类

7.2 类的定义
类是一个用户定义类型,与其他大多数的计 算机语言一样,Python使用关键字class来 定义类。语法格式如下:
class <ClassName>: '类的帮助信息' #类文档字符串 class_suite #类体 其中,ClassName为类的名称;类的帮助
信 息 可 以 通 过 ClassName.__doc__ 查 看 ; class_suite 由类成员,方法,数据属性组成。
⑵ __str__(self):此方法被内置函数str()与print函数调 用。用来设置对象以字符串类型出现时如何显示, __str__()函数的返回值是一个字符串对象。
⑶ __repr__(self):此方法被repr()内置函数调用,此函 数可以让对象以可读的形式出现。
⑷ __getattr__(self, name):此方法用在读取或是修改 不存在的成员属性的时候。
派生类的语法如下所示:
class <类名称> [(基类1,基类2, ...)]:
[“文件字符串”]
<语句>
一个衍生类可以同时继承自许多个基类,基类之间以逗号(,)隔开。
7.8 类的多态
所谓类的多态(polymorphism),就是类可以有许多个 相同名称,但参数类型不同的函数。Python并没有明 显的多态特性,因为Python函数的参数不必声明数据 类型。但是利用动态数据类型(dynamic typing), Python仍然可以处理对象的多态。
7.4 类实例
7.4.1 创建类实例 7.4.2 类实例的内置属性
7.4.1 创建类实例
要创建一个类实例时,只要指定变量给类名 称即可。例如:
第7章VFP 6.0程序设计基础

条件
真 假
A
ENDIF 后面的语句
28
说明: a. 根据<条件>的逻辑值进行判断。如果<条 件>的逻辑值为.T.,就依次执行[命令序列],执行 完后就转去执行ENDIF之后的命令。如果<条件> 的逻辑值为.F.,则IF<条件>和ENDIF之间的所有 命令都不执行,而直接转到ENDIF之后的命令。 b. IF语句和ENDIF语句必须成对出现,且各占 一行。 c. 为了程序阅读方便,便于以后维护修改,建 议对于[命令序列]部分采取向右缩进书写的方式。
19
例7.6 建立程序EX7_4.prg,用一组@...GET命令, 对表“职工.DBF”中的某条记录进行编辑,记录号通 过键盘输入。 set talk off set century on clear use 职工 input "请输入记录号:" to n go n @3,15 say "职工编号:" get 职工号 @3,33 say "姓名:" get 姓名 @3,61 say "照片" get 照片 @5,15 say "性别:" get 性别
24
7.2 程序的基本结构
7.2.1 顺序结构 顺序结构是程序设计中最基 本的结构,该结构按照程序命令 出现的先后顺序,依次执行。其 它结构作为它的组成部分而存在 于程序之中。事实上,程序中的 命令如果不进行特殊说明,就自 动按其前后排列顺序执行。
A
B
25
例7.9 在xsqk.dbf中按学号查找 set talk off clear accept "sqk select * from xsqk where 学号=xh =xh use set talk on return
第七章 程序设计基础(3)

R=2 H=20 W=4 W=4
第七章 程序设计基础
7.3 子程序、过程和自定义函数
总结: 整体由
几个 基本图 形 组合而 成
基本图形相 同 ↓ 计算方法相 同 ↓ 程序代码相 同
图形参数 相同↓ 计算结果 相同
把各基本图形模块化(独立程序)
第七章 程序设计基础
9.4 子程序、过程和自定义函数
第七章 程序设计基础(3)
Contents
1 2
子程序 过程
3
4
自定义函数
变量的作用域和参数传递
第七章 程序设计基础
7.3 子程序、过程和自定义函数
7.3.2 子程序 ?什么是子程序,为何要引入子程序概念? 求此方案的施工面积。
W=4 R=2 W=4
H=20
第七章 程序设计基础
7.3 子程序、过程和自定义函数
第七章 程序设计基础
7.3 子程序、过程和自定义函数
计算此方案的施工面积。
R=4 H=40 W=? W=8 W=8 R=? W=? H序、过程和自定义函数
7.3.4 自定义函数 函数的调用格式?
函数名(实参表)
补充:实参与形参
实参:即实际参数,指函数调用时括号中的参数,是函 数运算所必须的数据。 形参:即形式参数,指函数代码中用于接收实参的变量。
例:阅读程序sub1,p4
第七章 程序设计基础
总结
1、子程序 2、过程及过程文件 3、自定义函数 4、变量的作用域及参数传递
第七章 程序设计基础
预习
1、什么是面向对象程序设计? 2、面相对象程序设计中的基本概念 3、对象的操作
第七章 程序设计基础
第七章 程序设计基础
《面向对象程序设计》第07章在线测试

A B C D
A B C D A、共享所有数据成员,每个对象还包含基类的所有B
C、不共享任何数据成员,但每个对象还包含基类的
D A B C D A B C D
B、能够通过成员运算符访问
C、仍然是基类的私有成员
D、变为派生类的私有成员
3、当保护继承时,下面说法正确的是()
A、基类的成员的访问权限在派生类中不变
B、在类作用域外能够通过派生类的对象来直接访问基类的公有成员
C、基类的保护成员和私有成员在派生类中的访问权限为受保护的
D、基类的公有成员在派生类中的访问权限为受保护的
4、当派生类中有和基类一样名字的成员时,下面说法错误的是()。
A、将产生二义性
B、派生类的同名成员将覆盖基类的成员
C、是不能允许的
D、基类的同名成员将覆盖派生类的成员
5、含有虚基类的派生类的构造函数调用次序错误的是()
A、虚基类,基类,派生类,对象成员
B、基类,派生类,对象成员,虚基类
C、对象成员,基类,虚基类,派生类
D、基类,虚基类,对象成员,派生类
第三题、判断题(每题1分,5道题共5分)
1、基类的保护成员在派生类中仍然是保护成员。
正确错误
2、基类的保护成员不能被派生类的对象访问。
正确错误
3、私有继承时基类中的public成员在派生类中是private的。
正确错误
4、在公有继承中,基类中只有公有成员对派生类是可见的。
正确错误
5、解决多继承情况下出现的二义性的方法之一是使用成员名限定法。
正确错。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章面向对象的程序设计基础一、单项选择题1.Visual FoxPro 6.0不但支持传统的面向过程的编程方法,而且全面引入了_______的程序设计方法,将FoxPro系列提升到真正的关系数据库世界。
(§7.1 理解)A)结构化 B) 非过程化C)面向数据库 D)面向对象2.从可视化编程的角度看,对象是一个具有属性和方法的实体。
一旦对象建立以后,其操作就通过与对象有关的_______来描述。
(§7.1 理解)A)属性、事件和方法 B)实体、类C)封装性、继承性 D)数据3._______也是一种对象,他将一些特殊的对象进行更严格的封装,定制成用以显示数据、执行操作的一种图形对象。
(§7.1 理解)A)类 B)父类C)子类 D)控件4.下列_______组是类。
(§7.1 理解)A)篮球、饭桌、人、房子 B)篮球、饭桌、工人、厨房C)文本框、命令按钮 D)球、桌子、人、房子5.下列关于面向对象程序设计(OOP)的说法,错误的是_______。
(§7.1 理解)A)OOP以编写程序代码为中心工作B)OOP以“对象”表示各种事物,以“类”表示对象的抽象C)OOP以“方法”表现处理事物的过程D)OOP以对象及其数据结构为中心展开工作6.任何对象都有自己的属性,下列关于属性的叙述中,正确的是_______。
(§7.1 理解)A) 属性用于描述对象所具有的性质和特点,通常用各种类型的数据来表示B)属性用于描述对象所具有的内部特征,通常用各种类型的数据来表示C)属性用于描述对象所具有的外部特征,通常用各种类型的数据来表示D)属性用于描述对象所具有的固有方法,通常用各种程序代码来表示7.下列关于事件的说法中,错误的是_______。
(§7.1 理解)A)事件代码也可以像方法一样被显式调用B)事件是对象触发的行为描述,是一种预先定义好的特定动作C)事件可以持续完成。
D)事件由用户或者系统激活8.下列关于方法的说法中,错误的是_______。
(§7.1 理解)A)方法是与对象相关的过程B)方法是指对象为完成一定功能而编写的一段程序代码C)方法与事件有着紧密联系,一个时间必定有一个与之相对应的方法D)方法与事件相同,用户不可以扩充方法。
9.下列关于创建新类的叙述中,错误的是_______。
(§7.2 应用)A)从“项目管理器”里选择“类”| “新建”B)从系统菜单上选择“文件”|“新建”|“类”|“新建文件”C)可以在命令窗口输入ADD CLASS命令,进入“类设计器”D)在命令窗口里执行CREATE CLASS命令10. 下列关于“继承性”的说法,错误的是_______。
(§7.1 理解)A)继承性用来描述对象之间的共同属性B)继承性用来描述类之间的共同属性C)继承性可以避免方法和数据的重复D)继承性体现了一般化和特殊化的原则11.下列关于“封装性”的说法中,错误的是_______。
(§7.1 理解)A)封装性就是把对象的内部代码与操作过程隐藏起来B)封装是借助类来实现的C)封装是借助对象来实现的D)封装要求所有对象具备明确的功能,并有接口和其他对象相互作用12.用DEFINE CLASS 命令定义了一个名为“7_1”的FORM类时,若要为该类添加一个label1标签对象,应当使用的基本代码是_______。
(§7.1 应用)A)AddObject(“label1”,”” label”)B)MyForm.AddObject(“label1”,”” label”)C)Add Object label1 AS labelD)Add Object 7_bel1 AS label13. 下列关于将“类”添加到表单中的方法的说法,错误的是_______。
(§7.2 应用)A)将“类”从“类设计器”拖至“项目管理器”中B)将“类”从“项目管理器”拖至“类设计器”中C)将“类”从“项目管理器”拖至“表单设计器”中D)将“类”注册14.下列关于对象的引用说法错误的是_______。
(§7.3 理解)A)绝对引用是为了快速引用对象而采用的一种引用方式B)相对引用是为了快速引用对象而采用的一种引用方式C)引用是指在引用对象时,把对象的容器层次全部列出来D)对象的引用有绝对引用和相对引用15.下列关于类的说法错误的是_______。
(§7.3 理解)A)类不能被直接调用B)由类创建的对象可以被直接调用C)同一个类可以创建多个对象D)类可以被直接调用16.如果要提供对当前对象的引用,可以用_______关键字来设置对象的属性。
(§7.3应用)A)THIS B)THISFORM C) THISFORMSET D)PARENT17.下列关于设置单个对象属性的语法正确的是_______。
(§7.3 应用)A)Object.Property=Value B)Parent.Property=ValueC)Property=Value D)Parent.Object.Property=Value18.下列关于调用对象的方法的说法,错误的是_______。
(§7.3 理解)A)对象的方法没有返回值B)调用对象的方法时,如果该方法有返回值,被调用方法必须以圆括弧结尾C) 如果在调用方法时有参数传递,则必须把传递参数放在方法名后面的圆括弧内D) 在创建了一个对象后,可以在程序的任何部分调用方法19.在表单中加入两个命令按钮Command1和Command2,编写Command1的Click事件代码如下,则当单击Command1后,_____。
(§7.3 理解)mand2.Visible=.F.A)命令按钮组中的第二个命令按钮不可见B)Command1命令按钮不可见C)事件代码无法执行D)Command2命令按钮不可见20.在Visual FoxPro 6.0控件中,编辑框的默认名称为_______。
(§7.3 识记)A) List B) Edit1 C) Label D) Text21.在表单中编写Command1命令按钮的Click事件的过程代码,下列_______可以在单击命令按钮时退出表单。
(§7.3 应用)A)clear thisformB)thisform.hideC)thisform.unlodeD)thisform.release22.若某表单中有一个文本框Text1和一个命令按钮组CommandGroup1,其中,命令按钮组包含了Command1和Command2两个命令按钮。
如果要在命令按钮Command1的某个方法中访问文本框Text1的Text 属性值,下列式子中错误的是_____。
(§7.3 应用)A) ThisForm.Text1. Text B) This.Parent.Text1. TextC) Parent.Text1. Text D) This. Parent.Parent.Text1. Text23.调用对象方法的格式正确的是_____。
(§7.3 识记)A) Object.Method B) Method ObjectC) Parent.Object.Method D)Parent.Method二、多项选择题1.在表单Form1的事件或方法代码中设置该表单中命令按钮Command1的Caption属性为“确定”的正确命令是_______。
(§7.2 理解)A)mand1.Caption=”确定”B)mand1.Caption=”确定”C)mand1.Caption=”确定”D)mand1.Caption=“确定”2.在面向对象程序设计中,描述对象的三个要素包括________。
(§7.1 应用)A)属性 B)事件 C)开放性 D)方法3.面向对象程序设计的三个基本特征是_______。
(§7.1 应用)A)响应B)继承性 C)封装性 D)多态性4.在Visual FoxPro 6.0中,常用的表单事件有_______。
(§7.2 识记)A)INIT B)LOAD C)DESTROY D)CLEAR5. 在Visual FoxPro6.0中,下列名词属于表单控件的是_______。
(§7.2 识记)A)Load B) Text C)Label D)Click6. 在Visual FoxPro 6.0 中,下列名词属于对象触发事件的是_______。
(§7.2 识记)A)Unload B) DblClick C)Refresh D)Gotfocus7. 在Visual FoxPro 6.0的OOP概念中,下列说法正确的有_______。
(§7.1 理解)A)类是定义对象的特征和描述对象的外观与行为的模板B)对象是一个具有属性和方法的实体C)事件是对象触发的行为描述D)方法是指对象为完成一定功能而编写的一段程序代码8.下列有关面向对象程序设计的基本特征叙述正确的是_______。
(§7.1 理解)A)继承性用来描述基类和派生类之间的共同属性B)封装性是把对象的内部代码与操作过程隐藏起来C)多态性就是方法和名称完全相同D)用户的动作能够激发事件,但响应事件必须通过对应的方法来实现9.下面关于方法的正确说法是_______。
(§7.1 理解)A)方法是某一对象相关联的过程B)方法是指对象为完成一定功能而编写的一段程序代码C)方法程序创建完成后以.PRG文件保存D)一个事件必定有一个与之相对应的方法10.下列关于控件类的各种叙述中,正确的是_______。
(§7.1 理解)A)控件也是一种对象B)控件类是将特殊的对象进行更严格的封装C)控件是定制成用以显示数据、执行操作的一种图形对象D)控件类对象与容器类对象是相对而言的三、填空题1.一个对象建立以后,其操作就通过与对象有关的属性、_____和_____来描述。
(§7.1 识记) 2.面向对象程序设计的3个基本特征是继承性、_____和_____。
(§7.1 识记)3.Visual FoxPro 6.0中的基类有两大类型,分别是:_____和____;相应地,对象也分为_____和____。
(§7.1 识记)4._____不能被直接调用,由类创建的_____才可以被直接调用。
(§7.1 识记)5.引用对象的两种方式是_____和____。
(§7.1 识记)6._____对象引用提供对当前对象的引用,_____对象引用提供对当前表单的引用,_____对象引用提供了一种引用当前表单集的快捷引用,_____对象引用提供了一种引用当前对象的父对象的引用。