请选择 进入手机版 | 继续访问电脑版

程序人生

 找回密码
 注册

QQ登录

只需一步,快速开始

程序人生 门户 ASP程序开发 查看内容

asp面向对象,vbs脚本中的Class写法

2016-9-22 16:57| 发布者: sean| 查看: 215| 评论: 0

摘要: 不论是java程序员,还是.net程序员都熟知Calss,而asp中的,用vbs也是可以写class的,通常大家习惯认为vbs是面向过程的,实际上后期有了Class以后,也可以面向对象了。
不论是java程序员,还是.net程序员都熟知Calss,而asp中的,用vbs也是可以写class的,通常大家习惯认为vbs是面向过程的,实际上后期有了Class以后,也可以面向对象了。
来看看vbs中Class的写法及定义。
初始化与终结化的应用
使用Class语句可以创建一个对象,可以为它编写字段、属性及方法,它只有两个对象事件——Initialize与Terminate。首先来看一个简单的Class示例:
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语句,获取属性值或对象引用。具体示例如下:
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

调用这个Class对象
用VBScript创建的对象并不是真正的面向对象,它不能继承和实现多态,但是在QTP对象模型Utility中,提供了一个RegisterUserFunc方法可以覆写对象的方法,但这也不是真正意义上的面向对象。Class及其成员如何创建,上面已经简单介绍过,若要对其中的一些语句进一步了解,还需要去仔细阅读一些参考文档。下面我们来看看如何调用对象:
Dim MyUser      '定义对象变量名,注意变量名不能与类名相同,即使是大小写不同
Set MyUser = New User       '创建对象用New语句
MyUser.UserName = "Sirrah"   '给属性赋值
MyUser.ToString()    '调用方法

什么时候用Property Set,什么时候用Property Let
(1)无论是对引用类型字段的封装,还是对值类型字段的封装,都可以用Property Let,而Property Set
   只能在对引用类型字段封装时出现,而且这种情况下依然可以不用Property Set
 (2)定义类时我们可以根据外部赋值到属性的类型来决定用Set还是用Let,因为如果要赋值
   给属性的值的类型是值类型,那么无论如何也用不着Property Set;而后定义好了之后,可以再由
   定义的是Property Let还是Property Set来决定赋值方式,即用不用Set语句

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


关于程序人生网|小黑屋|手机版|Archiver|

程序人生 | QQ

粤公网安备 44040202000007号

( 粤ICP备13038131号-1 )

返回顶部