来源:网络 | 2007-3-23 | (有4637人读过)
控件和“类” :
在上面我已经说过,控件的概念和类的概念在很大程度上是一致的,所以让我们先从控件开始来理解类的概念吧!
VB 自第一版开始就提出了控件的概念,一个控件本身就像一个应用程序一样,我们不知道它的内部是怎么实现的,但是可以通过其提供的“属性”、“方法”和“事件”对其行为进行控制,以达到我们的目的,因为大家都比较熟悉,我就不多说了。但是既然控件和类是很相似的,我们就可以想象设计出功能行为和 Timer 控件一样的类(VB 源盘的例子里有一个这样的类),或者一个 PictureClip 控件的实现,但是这些不需要我们附带一个 ActiveX 控件,甚至不需要有窗体来承载它!
控件最基本的概念应该就是“方法”、“属性”和“事件”了。
先来说一说“方法”。VB 中不论控件或类,都管其中的函数称作“方法”,也就是说,“方法”其实就是一个函数(没有返回值就是过程),它通过参数的指定来完成一定的任务。
再说一说“属性”。“属性”的概念倒是比较有趣。本来“属性”应该只是一个变量罢了,不过在 VB 中并不是这样简单,我的理解“属性”就是两个函数,一个赋值,一个取出。因为这样,VB 中的“属性”并不只有赋值的功能,还可以进行一些用户认为重要且必须的操作。比如我们常用“Me.Caption="测试"”这种方法来访问“属性”,在这里我们是希望本窗体的标题被设置为“测试”,如果用 VC 的话,在进行了这一赋值之后,一定要用“UpdataData”函数刷新才能产生效果,不过在 VB 中,赋值后不需要做什么多余的操作,我们的愿望就达成了,这正是因为“属性”是函数的缘故,在这种特殊的函数中,VB 不只进行了赋值操作,还进行了类似“UpdataData”的操作。
最后是“事件”。“事件”的概念也很特殊,我理解它是一个特殊的“回调函数”。所以这么说,是因为如果 VB 里没有“事件”这个概念的话,我们可以在每一个使用控件的地方放置一些特定(和控件协商后)的函数,在控件里调用这些函数,一样可以完成类似的任务,只是“事件”允许我们不写出我们不关心的函数,而且“事件”是在控件里定义这些函数,我们不必关心这些函数的定义和参数,VB 会帮我们写入,而且会加上控件名以区别不同的控件的同名“事件”。
把一系列“属性”“方法”“事件”结合到一起的就是控件,同样,在面向对象的概念里把一系列“属性”“方法”“事件”结合到一起的就是类。我们如果在窗体上放置了一个控件,我们就有了一个实际存在的控件,而不是一个抽象的概念,我们称此为实例化,在面向对象里就是生成了一个对象,不过“类”不能用鼠标拖出来生成实例,需要用“Dim”产生。
|