VBS基础篇 - 对象(1) - Class对象
相信对JAVA有一定了解的朋友一定对类这个名词不陌生,但是大家可能没有想过在VBS中使用Class类吧,其实Class类在自动化测试中是相当常用的,对于代码量增大时,类的结构化就充分体现出了它强大的优势,下面我们就来看一下类的组成部分以及一些用法。
初始化与终结化的应用
使用Class语句可以创建一个对象,可以为它编写字段、属性及方法,它只有两个对象事件——Initialize与Terminate。首先来看一个简单的Class示例:
1
2
3
4
5
6
7
8
9
10
11
|
Set
MyUser =
New
User
Class
User
'Initialize事件相当于构造函数
Private
Sub
Class_Initialize
'当这个类被创建时执行
MsgBox
"类开始"
End
Sub
'Terminate事件相当于析构函数
Private
Sub
Class_Terminate
'当类被销毁时执行
MsgBox
"类结束"
End
Sub
End
Class
|
Get与Set的应用
Class里面使用Let语句,设置属性值、Get语句,获取属性值或对象引用。具体示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
Set
MyUser =
New
User
MyUser.MyAge =
"22"
'设置对象的MyAge属性值
MyUser.Myname =
"Sirrah"
'设置对象的Myname属性值
MyUser.ToString
'调用对象的ToString方法
Class
User
Private
Str_Name
'声明变量Str_Name
Private
Int_Age
'声明变量Int_Age
'Property Get语句,获取属性值或对象引用,Default只与Public一起使用,表示该属性为类的默认属性
Public
Property
Get
Myname
Myname = Str_Name
End
Property
Public
Property
Get
MyAge
MyAge = Int_Age
End
Property
'Property Let语句,设置属性值
Public
Property
Let
Myname(New_Name)
Str_Name = New_Name
End
Property
Public
Property
Let
MyAge(New_Age)
Int_Age = new_age
End
Property
'类方法
Public
Sub
ToString()
MsgBox
"姓名:"
+
Me
.Myname+
" 年龄:"
+
Me
.MyAge
'Me相当于Java里面的This
End
Sub
End
Class
|
如何调用对象
用VBScript创建的对象并不是真正的面向对象,它不能继承和实现多态,但是在QTP对象模型Utility中,提供了一个RegisterUserFunc方法可以覆写对象的方法,但这也不是真正意义上的面向对象。Class及其成员如何创建,上面已经简单介绍过,若要对其中的一些语句进一步了解,还需要去仔细阅读一些参考文档。下面我们来看看如何调用对象:
1
2
3
4
|
Dim
MyUser
'定义对象变量名,注意变量名不能与类名相同,即使是大小写不同
Set
MyUser =
New
User
'创建对象用New语句
MyUser.UserName =
"Sirrah"
'给属性赋值
MyUser.ToString()
'调用方法
|