首页 理论教育 面向对象程序设计概念

面向对象程序设计概念

时间:2022-02-28 理论教育 版权反馈
【摘要】:面向对象的程序设计思想是一种结构模拟的方法,它将现实世界看成为由许多类对象所组成,各种类型对象之间可以互相发送和接收消息,消息激发对象作出相应的反应。目前,面向对象的程序设计已经成为当代程序设计的主流,Access内嵌的VBA,就是采用面向对象的编程机制。在面向对象程序设计方法中,将实体静态特征与动态行为封装在一起构成对象。某个事件发生时,对象所执行的操作称为事件响应。

7.1.2 面向对象程序设计概念

面向对象的程序设计思想是一种结构模拟的方法,它将现实世界看成为由许多类对象所组成,各种类型对象之间可以互相发送和接收消息,消息激发对象作出相应的反应。从程序设计角度看,每个对象的内部都封装了数据和方法。目前,面向对象的程序设计已经成为当代程序设计的主流,Access内嵌的VBA,就是采用面向对象的编程机制。在Access数据库编程中,对象无处不在,如窗体、报表、宏等,甚至数据库本身也是一种对象,Access中各种对象都具有属性和方法,可以通过对象的方法来访问和修改对象的属性,通过对象之间的相互作用实现一定的功能。

在面向对象程序设计技术中有一些重要的基本概念,现介绍如下。

1.对象

现实世界中客观存在的事物称为实体,实体既可以是看得见摸得着的东西,也可以是抽象的概念,如学生、学校、贷款、订货等,只要能相互区分的事物都是实体。

现实世界中,任何实体都具有一些静态特性和动态的行为,静态特性表现为事物的属性特征,而动态行为一般只有在发生了特定的事件时才会表现出来。如:对于汽车,颜色和式样是其静态特性,行驶和出车祸是其动态行为。动态行为的发生要有一定的触发条件,如:汽车在行驶中车胎爆了,就会引发车祸。

在面向对象程序设计方法中,将实体静态特征与动态行为封装在一起构成对象。在程序设计中,任何与程序设计相关的事物都可以作为对象。

在VBA编程中,对象就像积木,它是进行VBA编程的基础构件。在开发一个应用程序时,必须先建立各种对象,然后围绕对象进行程序设计。在VBA中,对象可以表现为一个窗口、窗口中的一个按钮、一个文本框等控件,还可以表现为变量、文件等不可视的程序元素,如后面将介绍的Docmd对象,它是运行VBA具体命令的对象。

2.类

在现实世界中,类是用来描述某种具有相同属性和行为的事物,如人类就是用来描述全体人的一个概念,通过此概念把所有人的相似属性和行为进行抽象,再比如学生、课程等都是类。对象是类的实例,是类的具体实现,如学生类由很多属性组成,将学生类的属性“姓名、性别、年龄”赋值张三、男、22”,就得到一个具体的叫张三的学生对象,因此张三就是学生类的实例。

类是对象的原型,它描述了该类事物的共同特征和行为,在面向对象编程中,类是用计算机语言描述的,在计算机程序中类可以看作模板,对象是用模板做出来的东西,是类的实例,具有类所定义的所有特征与行为。

在Access中,窗体是个事先被定义的类,因此当我们需要制作窗口对象时,只要进入窗体设计器就会直接对一个窗体对象进行设计,然后可以根据需要通过改变窗体属性,生成多个具体的窗体对象,而窗体上的元素,如按钮、文本框、标签等,则需要通过工具箱上的类工具在窗体上生成相应对象。除此之外,用户还可以在程序中定义和使用自己的类。

3.属性

属性是对象静态特征的描述。例如:窗体的“标题”属性决定窗体标题栏中显示的内容,“最大化、最小化按钮”属性决定窗体能否最大化和最小化,“名称”属性决定窗体的名字等。

属性有两个成分,一是名称,二是属性值。属性的名称用于区别不同的属性,属性值则表现了该属性的具体形态。每个属性都有一个默认值,如果不改变该值,应用程序就使用该默认值,否则使用用户指定的值。属性值的改变有两种方式,一是在窗体设计器中,通过窗体的“属性”窗口对窗体的属性进行设置,二是在VBA编程中,通过引用属性名对属性值赋值,改变属性的值。Access中,访问属性并对其赋值的格式为:

<对象名>.<属性名>=xxxx

xxxx为将要赋于属性名的值,其数据类型由将要赋值的属性数据类型决定,如属性为数值型,xxxx就必须为数值,属性为字符型,xxxx就必须为字符型。例如:command0.caption="退出",command0为对象名,caption为command0的标题属性,因为其数据类型为文本,所以所赋值“退出”,要打上双引号

每一种对象都有一组特定的属性,这在“属性表”窗口中可以看到。不同的对象有许多相同的属性,也有许多不同的属性。

4.方法

如果说对象的属性是静态成员,那么对象的方法就是动态操作,通过动态操作可以改变对象的当前状态。例如:将窗体自动打开、将数据表自动打开、设置光标插入点到某个文本框中,这些都可以通过方法实现,方法是封装在对象之中的特定的程序段,叫方法过程,它不像属性那样是显示在“属性表”窗口中,只可显示在程序代码中,在程序中,使某个方法执行称为调用该方法。VBA中调用方法的格式为:

<对象名>.<方法名>[<参数>]

例如:调用Access提供的Docmd对象的OpenTable方法打开名为“学生”的数据表,其调用语句为:

Docmd.OpenTable"学生"

5.事件与事件过程

事件是由系统预先定义好的对象对外部操作的响应,导致某个对象的“操作”被执行的过程称为事件。某个事件发生时,对象所执行的操作称为事件响应。面向对象的程序设计语言为每一个对象都预先定义了许多事件,当事件发生时,系统要做何反应,这需要由程序员根据需要编写相应的响应代码,响应代码放在事件过程中。如在程序执行时,单击命令按钮将会产生单击(Click)事件,如果程序员在该命令按钮的Click事件过程中,写了相应的代码,代码将被执行。

Access中事件可以分为两类,一类事件由用户引发,如单击(Click)、双击(DblClick)、移动鼠标(MouseMove)、按下键(KeyPress)等;另一类事件由系统引发,如加载对象(Load)、卸载对象(Unload)。

每个对象都有一系列预定义的事件集。例如,命令按钮能响应单击、获得焦点、失去焦点等事件,可以通过“属性表”窗口的“事件”选项卡来查看,如图7-1所示。

img340

图7-1 “命令按钮”控件的事件

系统针对每个对象都预先定义了一系列的事件集,系统通过对象名和事件名区分各个事件。例如,需要命令按钮控件响应Click事件,就把完成Click事件功能的代码写到Click事件过程中。事件过程是事件的处理程序,与事件是一一对应的。

事件过程格式如下:

img341

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈