在ASP中使用类--(详细)

本文介绍如何在ASP中使用VBS定义类,包括类的声明、私有变量、方法、属性及事件的定义,并给出一个完整的自行车类实例。
 

http://www.htyi.cn/article/detail_63.html(转)

在ASP中使用类

使用VBS的ASP也能定义类的!本文将介绍定义、使用类的基本方法。

在ASP(特指使用VBS的ASP,下同)里,使用Class语句来声明一个类。语法如下:

Class类名

EndClass

类的定义、变量、属性和方法等都包含在Class...EndClass块中。

下面就可以定义类的属性和方法了。正式讲属性、方法的定义之前,有一惚匦肓私猓?在Class块中,成员通过相应的声明语句被声明为Private或Public。被声明为Privat

e的将只在Class块内是可见的。被声明为Public不仅在Class块的内部是可见的,对

Class块之外的代码也是可见的。没有使用Private或Public明确声明的被默认为Pub

lic。在类的块内部被声明为Public的过程(Sub或Function)将成为类的方法,Public

变量将成为类的属性。(摘自MSVBS参考)

现在,我们来定义个自行车的类:

Classbike

EndClass

这样,就声明了一个名为bike的类。不过,它现在什么都不能做。要让它能做点什么,得往

里面加些东西。

一、私有变量

为了交换数据等操作,我们可以声明一些Class内部的私有变量。顾名思义,私有变量只能在

Class块中可见,外部是无法访问的。声明私有变量的语法是:

Private变量名

例:Privatebikename'声明了一个名为bikename的私有变量

现在,我们来完善一下bike类:

Classbike

'***以下四个变量仅在本类内可见****

Privatebikename '车名

Privatebikemodel '型号

Privatebikedate '出厂日期

Privatebikespeed '速度

EndClass

二、方法:

之所以先讲方法,是因为定义方法对于大家来说相对熟悉。方法可以看作是函数,在VBS里可

以使用Sub和Function来定义函数(通常把SUB定义块叫“过程”),所以,定义方法和定义

函数(过程)的语法一样--只要加上个Public就可以了--当然,上面已经说了,Class块

中默认就是Public,所以可以省略不写:

PublicSub方法名(参数)

'方法处理代码

EndSub

PublicFunction方法名(参数)

'方法处理代码

EndFunction

(至于什么时候用Sub什么时候用Function并没规定,不过,一般,要求方法返回一个值就要

用到Function,否则就用Sub。)

一个简单的例子:

PublicSubspeedUp()'加速

bikespeed=bikespeed+1

EndSub

如此,我们的bike类就有了一个加速的功能,通过它,能使自行车的速度下降1

三、属性

有两种方式来定义属性,一种是在声明变量时使用Public,这样,该变量就成了类的属性;

另一种方法是使用Property语句。下面讲第二种方法。

和变量一样,属性的操作无非是赋值和读取值。

(-)设置属性值(赋值)

设置属性值使用PropertyLet语句,语法如下:

PublicPropertyLet属性名(参数)

'处理代码

EndProperty

下面来设置自行车的品牌:

PublicPropertyLetName(ByValstrName)

bikename=strName

EndProperty

上例中,我们声明了一个属性:Name。并将类私有变量bikename的值设置为strName。

(二)读取属性值

可以使用PropertyGet语句来读取属性值,语法如下:

PublicPropertyGet属性名

属性名=值

EndProperty

下面来读取自行车的品牌:

PublicPropertyGetName '获取Name属性值

Name=bikename

EndProperty

例中,声明了一个属性:Name,并将类私有变量bikename的值赋给该属性。

结合上面的设置属性值,你应该很清楚了吧!

四、综合

到现在,一辆简单的自行车该成形了。综合以上代码:

Classbike

'***以下四个变量仅在本类内可见****

Privatebikename '车名

Privatebikemodel '型号

Privatebikedate '出厂日期

Privatebikespeed '速度

PublicSubspeedUp() '定义方法:加速

bikespeed=bikespeed+1

EndSub

PublicPropertyLetName(ByValstrName) '设置Name属性值

bikename=strName

EndProperty

PublicPropertyGetName '获取Name属性值

Name=bikename

EndProperty

EndClass

五、事件

VBS里的Class是有事件的。它包含Initialize和Terminate两个事件。

(一)Initialize事件:在类初始化时触发,可以用它来设置属性的初始值,以及显示欢迎

信息等。语法如下:

PrivateSubClass_Initialize()

语句

EndSub

(二)Terminate事件:在类结束时触发,可以用它来处理一些后期事务。语法如下:

PrivateSubClass_Terminate()

语句

EndSub

六、实例化类

使用Set语句来实例化类。语法如下:

Set实例名=New类名

应用到自行车类:

SetfhBike=Newbike

然后就能用实例名.属性来访问、设置属性;使用实例名.方法来使用方法了。

例:

fhBike.Name="凤凰"'设置自行车的品牌

fhBike.speedUp()'凤凰自行车加速

使用完之后,别忘了释放该对象:

SetfhBike=Nothing

七、完整的例子

<%

Classbike

'***以下四个变量仅在本类内可见****

Privatebikename '车名

Privatebikemodel '型号

Privatebikedate '出厂日期

Privatebikespeed '速度

'***下面的变量为公共的,成了类的一个属性,可通过对象来直接访问****

PublicAuthor '作者

PublicSubClass_Initialize() '类的初始化.通常,可以在这设置一些

默认值

Print("欢迎使用,类已成功初始化")

bikename="永久"

bikemodel="女式双轮"

bikedate="1999年5月"

bikespeed=15

Author="lly365"

EndSub

PublicSubClass_Terminate() '类结束时触发本事件.

bikename=""

bikemodel=""

bikedate=""

bikespeed=0

Print("感谢使用!现在,类已销毁!")

EndSub

PublicPropertyLetSpeed(ByValintSpeed)'设置Speed属性值

bikespeed=intSpeed

EndProperty

PublicPropertyGetSpeed '获取Speed属性值

Speed=bikespeed

EndProperty

PublicPropertyLetName(ByValstrName) '设置Name属性值

bikename=strName

EndProperty

PublicPropertyGetName '获取Name属性值

Name=bikename

EndProperty

PublicSubspeedUp() '定义方法:加速

bikespeed=bikespeed+1

EndSub

PublicSubspeedDown() '定义方法:减速

bikespeed=bikespeed-1

EndSub

PublicSubshowInfo() '定义方法:显示信息

Response.Write("<divstyle=""border:1pxsolid#0000""><u

l>")

Response.Write(showInfoItem("品牌",bikename))

Response.Write(showInfoItem("型号",bikemodel))

Response.Write(showInfoItem("生产日期",bikedate))

Response.Write(showInfoItem("速度(km/h)",bikespeed))

Response.Write("</ul></div>")

EndSub

PrivateFunctionshowInfoItem(str,item_) '私有函数,仅在本类内部

可见!

showInfoItem="<li>"&str&":"&item_&"</li>"

EndFunction

SubPrint(str) '省略关键字,默认为Public,所以,它也是类的一个方法

Response.Write("<div>"&str&"</div>")

EndSub

EndClass

DimfhBike

SetfhBike=Newbike '实例化

fhBike.Print("fhBike已实例化!") '使用Print方法来显示信息

fhBike.showInfo() '显示对象的信息

fhBike.Print("fhBike已加速!")

fhBike.speedUp() '加速

fhBike.showInfo()

fhBike.Print("设置fhBike相关属性")

fhBike.Speed=20 '设置速度

fhBike.Name="凤凰" '设置品牌名称

fhBike.showInfo()

fhBike.Print("现在,给fhBike减速")

fhBike.speedDown() '减速

fhBike.showInfo()

fhBike.Print("本类作者:"&fhBike.Author) 'Author被声明为Public,所以可以

直接访问(它是一个属性)

SetfhBike=Nothing

%>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值