1.2 对象的属性、事件和方法
对象是 VB 编程的核心,窗体和控件都是对象。在例1中,我们向窗体上添加了三个命令按钮,这些命令按钮已经具备了基本的外观特征和功能,但这并不用编写程序去实现,这是因为“命令按钮”这个控件已经包含了这些功能的代码。这就是面向对象程序设计的特点,不需要关心对象的详细实现过程就可以直接将其应用到程序中,简化了编程的过程。
对象是具有特殊性质(属性)和行为方式(方法)的实体,在现实生活中到处可以见到,如一辆汽车可看作一个对象,汽车的型号、价格、外观等特性称为“属性”,汽车的启动、加速、减速等是汽车行为,称为“方法”。对象的概念是相对的,根据观察者的角度可将对象分解和综合,如汽车还可分解为车头、车尾,也可分解为发动机、车轮等对象,分解后的对象又都分别具有不同的属性和行为。
类是具有共同抽象的对象的集合,在面向对象的程序设计中,类是创建对象实例的模板,它包含所创建对象的共同属性描述和共同行为特征的定义。即,对象是类的实例。例如,各种各样的汽车可以看作一个汽车类,具体到某一辆特定的汽车则称为汽车类的一个实例,即一个对象。
VB中的类可分为两种,一种是由系统设计好,可以直接使用的类;另一类是由用户定义的类,本书中重点介绍第一种。在上一节所介绍的工具箱中的标准控件均为VB系统设计好的标准控件类,当开发者在窗体上“画”一个控件的过程即为该控件类的实例化,将控件类转换成了一个控件对象,以后简称为控件。除了用户大量使用的窗体和控件对象外,VB还提供了一些系统对象,如打印机(Printer)、剪贴板(Clipboard)、屏幕(Screen)等,在后面的章节中将涉及系统对象的使用。
在面向对象程序设计中,“对象”是系统中基本的运行实体。建立一个对象后,其操作是通过与该对象有关的属性、事件和方法来描述的。属性、事件和方法也称为对象的三要素。
1.2.1 对象的属性
属性是对象的特征,不同的对象有不同的属性。对象常见的属性有名称(Name)、标题(Caption)、颜色(Color)、字体(Font)等。
VB中的不同的对象具有不同的属性,其中有一部分属性是大多数控件所共同具有的,如名称属性(Name)、是否可见属性(Visible)等。比如,杯子具有容量(Capacity)属性、铅笔具有长度(Length)属性、收音机具有音量(Volumn),但是它们共同具有颜色(Color)这个属性。



◢
属性设置的两种方法:
方法一:通过属性窗口设置对象的属性。
方法二:在程序中用程序语句设置。
格式:对象名.属性名=属性值
例如:Label1.Caption= “欢迎来到VB世界!”
这两种方法都可以实现属性的修改,但是又有区别:大多数属性在属性窗口中修改以后,窗体中可以立刻看到控件状态的变化。如例2中,修改标签和命令按钮的Caption属性以后,立刻就可以看到窗体上的标签和命令按钮显示内容发生了变化。而如果使用方法二在程序代码中用语句实现,则需要运行程序时属性设置才能生效。在一个程序中应该使用哪种方法设置属性需要根据实际情况考虑。但是需要注意的是,有些属性仅允许在属性窗口中设置,例如Name属性。而有些属性必须在程序代码中利用语句进行设置,例如文本框的SelStart、SelLength和SelText属性等。
1.2.2 对象的事件
传统高级语言使用的是面向过程、按顺序执行的编程机制,这种编程机制的缺点是程序员必须要关心什么时候发生什么事情。VB采用的是事件驱动的编程机制,在这种机制下,程序员只要编写若干个响应用户动作的事件代码,如鼠标单击,选择命令等,这些代码的执行则由用户启动的事件来触发。
所谓事件(Event),是指由系统预先设计好的,能被某一对象识别的动作。如单击(Click)、双击(DblClick)、键盘按下(KeyPress)、载入窗体(Load)、移动鼠标(MouseMove)等都是事件。不同的对象所能识别的事件不同,如窗体能识别单击和双击事件,而命令按钮只能识别单击事件。当事件由用户触发(如窗体的Click事件)或由系统触发(如窗体的Load事件)时,对象就会执行该事件的代码,即对事件作出响应。如在例2.1中,程序运行时,用户单击“向右走”命令按钮时,触发了Command2的单击(Click)事件,相应的事件代码被执行,从而实现了窗体上的标签向右移动。响应某个事件后,所执行的程序代码叫做事件过程(Event Procedure)。
格式:
Private Sub 对象名_事件名 ([参数列表])
事件响应程序代码
End Sub
这里的“对象名”指的是该对象的名称属性,“事件名”是由VB预先定义好的该对象的事件。
如在例2中,程序运行时,用户单击“改变字号”命令按钮时,发生了Command1的单击(Click)事件,系统就会执行下面这个事件过程:
Private Sub Command1_Click()
Label1.FontSize = Text1.Text
End Sub
当用户单击“向右走”、“结束”按钮时,分别触发了Command2、Command3的Click事件,系统会分别执行相应的事件过程:
Private Sub Command2_Click()
Label1.Left = Label1.Left + 100
End Sub
Private Sub Command3_Click()
End
End Sub
1.2.3 对象的方法
在面向对象程序设计中,引入了称为“方法(Method)”的特殊过程和函数。方法的操作与过程和函数的操作相同,但“方法”是特定对象的一部分,正如“属性”和“事件”一样。
格式:对象名.方法名 [参数列表]
例如,在VB中,提供了一个名为Print的方法,当把它用于不同的对象时,可以在不同的对象上输出信息,下面的语句可以实现在对象名为“Form1”的窗体上显示字符串“Visual Basic程序语言设计”:
Form1.Print " Visual Basic程序语言设计"
如果语句改为:
Printer.Print " Visual Basic程序语言设计"
执行时,将在对象名为“Printer”的打印机上打印字符串“Visual Basic程序语言设计”。
在调用方法时,可以省略对象名。在这种情况下,VB所调用的方法作为当前对象的方法,一般把当前窗体(Me)作为当前对象。下面的三条语句,执行时都将在当前窗体上显示字符串“Visual Basic程序语言设计”。
Print " Visual Basic程序语言设计"
Me. Print " Visual Basic程序语言设计"
Form1.Print " Visual Basic程序语言设计"
VB提供了大量的方法,了解对象的方法是学习VB程序设计的一个重要方面,在以后的章节中我们将分别介绍各种对象及其方法。
====================================================================================
阅读下面资料:常用的基本属性.doc(下载附件 847.5 KB)
====================================================================================

