ASP类

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
使用VBS的ASP也能定义类的!本文将介绍定义、使用类的基本方法。

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

Class 类名
End Class

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

下面就可以定义类的属性和方法了。正式讲属性、方法的定义之前,有一点必须了解:
在 Class 块中,成员通过相应的声明语句被声明为 Private 或 Public。被声明为 Privat
e 的将只在 Class 块内是可见的。被声明为 Public 不仅在 Class 块的内部是可见的,对
Class 块之外的代码也是可见的。没有使用 Private 或 Public 明确声明的被默认为 Pub
lic。 在类的块内部被声明为 Public 的过程 (Sub 或 Function)将成为类的方法,Public
变量将成为类的属性。(摘自MS VBS参考)

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

Class bike

End Class

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

一、私有变量
为了交换数据等操作,我们可以声明一些Class内部的私有变量。顾名思义,私有变量只能在
Class块中可见,外部是无法访问的。声明私有变量的语法是:
Private 变量名
例:Private bikename '声明了一个名为bikename的私有变量
现在,我们来完善一下bike类:

Class bike
'***以下四个变量仅在本类内可见****
Private bikename '车名
Private bikemodel '型号
Private bikedate '出厂日期
Private bikespeed '速度
End Class

二、方法:
之所以先讲方法,是因为定义方法对于大家来说相对熟悉。方法可以看作是函数,在VBS里可
以使用Sub和Function来定义函数(通常把SUB定义块叫“过程”),所以,定义方法和定义
函数(过程)的语法一样--只要加上个Public就可以了--当然,上面已经说了,Class块
中默认就是Public,所以可以省略不写:

Public Sub 方法名(参数)
'方法处理代码
End Sub



Public Function 方法名(参数)
'方法处理代码
End Function

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

一个简单的例子:
Public Sub speedUp() '加速
bikespeed = bikespeed + 1
End Sub

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

三、属性
有两种方式来定义属性,一种是在声明变量时使用Public,这样,该变量就成了类的属性;
另一种方法是使用Property语句。下面讲第二种方法。
和变量一样,属性的操作无非是赋值和读取值。
(-)设置属性值(赋值)
设置属性值使用 Property Let语句,语法如下:
Public Property Let 属性名(参数)
'处理代码
End Property

下面来设置自行车的品牌:
Public Property Let Name(ByVal strName)
bikename = strName
End Property
上例中,我们声明了一个属性:Name。并将类私有变量bikename的值设置为strName。

(二)读取属性值
可以使用Property Get 语句来读取属性值,语法如下:
Public Property Get 属性名
属性名 = 值
End Property

下面来读取自行车的品牌:
Public Property Get Name '获取Name属性值
Name = bikename
End Property
例中,声明了一个属性:Name,并将类私有变量bikename的值赋给该属性。
结合上面的设置属性值,你应该很清楚了吧!

四、综合
到现在,一辆简单的自行车该成形了。综合以上代码:
Class bike
'***以下四个变量仅在本类内可见****
Private bikename '车名
Private bikemodel '型号
Private bikedate '出厂日期
Private bikespeed '速度

Public Sub speedUp() '定义方法:加速
bikespeed = bikespeed + 1
End Sub


Public Property Let Name(ByVal strName) '设置Name属性值
bikename = strName
End Property

Public Property Get Name '获取Name属性值
Name = bikename
End Property

End Class

五、事件
VBS里的Class是有事件的。它包含Initialize和Terminate两个事件。
(一)Initialize事件:在类初始化时触发,可以用它来设置属性的初始值,以及显示欢迎
信息等。语法如下:
Private Sub Class_Initialize()
    语句
End Sub
(二)Terminate事件:在类结束时触发,可以用它来处理一些后期事务。语法如下:
Private Sub Class_Terminate()
    语句
End Sub

六、实例化类
使用Set语句来实例化类。语法如下:
Set 实例名 = New 类名
应用到自行车类:
Set fhBike = New bike

然后就能用 实例名.属性 来访问、设置属性;使用 实例名.方法 来使用方法了。
例:
fhBike.Name = "凤凰" '设置自行车的品牌
fhBike.speedUp() '凤凰自行车加速

使用完之后,别忘了释放该对象:
Set fhBike = Nothing

七、完整的例子
<%
Class bike
'***以下四个变量仅在本类内可见****
Private bikename '车名
Private bikemodel '型号
Private bikedate '出厂日期
Private bikespeed '速度
'***下面的变量为公共的,成了类的一个属性,可通过对象来直接访问****
Public Author '作者

Public Sub Class_Initialize() '类的初始化.通常,可以在这设置一些
默认值
Print("欢迎使用,类已成功初始化")
bikename = "永久"
bikemodel = "女式双轮"
bikedate = "1999年5月"
bikespeed = 15
Author = "lly365"
End Sub

Public Sub Class_Terminate() '类结束时触发本事件.
bikename = ""
bikemodel = ""
bikedate = ""
bikespeed = 0
Print("感谢使用!现在,类已销毁!")
End Sub

Public Property Let Speed(ByVal intSpeed) '设置Speed属性值
bikespeed = intSpeed
End Property

Public Property Get Speed '获取Speed属性值
Speed = bikespeed
End Property

Public Property Let Name(ByVal strName) '设置Name属性值
bikename = strName
End Property

Public Property Get Name '获取Name属性值
Name = bikename
End Property

Public Sub speedUp() '定义方法:加速
bikespeed = bikespeed + 1
End Sub

Public Sub speedDown() '定义方法:减速
bikespeed = bikespeed - 1
End Sub

Public Sub showInfo() '定义方法:显示信息
Response.Write("<div style=""border:1px solid #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>")
End Sub

Private Function showInfoItem(str,item_) '私有函数,仅在本类内部
可见!
showInfoItem = "<li>" & str & ":" & item_ & "</li>"
End Function

Sub Print(str) '省略关键字,默认为Public,所以,它也是类的一个方法
Response.Write("<div>" & str & "</div>")
End Sub
End Class

Dim fhBike
Set fhBike = New bike '实例化

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,所以可以
直接访问(它是一个属性)
Set fhBike = Nothing

%>
ASP中的CLASS asp面向对象,ASP中的CLASS编写,可以参考一下 立即下载

相关推荐

asp的定义方法和使用方法实例

<% 02 class myclass 03 '这里是定义的局部变量,需要定义成private型的变量,不可以直接对这些变量赋值 04 private str_title 05 private str_author 0607 '这是初始化的时候自动运行下面代码 08 private sub class_in

form88的专栏 2591

【转】asp class的使用方法

asp class的使用方法

emituofo的专栏 357

[轉]ASPclass)详解

From : http://hkstb.blog.163.com/blog/static/460967932009916111651830/ From : http://blog.sina.com.cn/s/blog_561be3720100ap3e.html   ASP 本身是不存在这一概念的,这里所说的ASP 支持的脚本语言 VBScript 中Class。VBScript 中...

weixin_34021089的博客 329

ASP中使用(Class)

  1在ASP中使用(class)  2在不入前的一天,当我为了解决一个语法问题来翻阅VBscript文档时,偶然间发现在了下面的一句话:  3  4Class Statement  5  6Declares the name of a class, as well as a definition of the variables, properties, and methods that co

ξσ Dicky's Blog σξ 3243

asp class用法ASP技术

asp class用法asp class 严格地说,ASP 并不是一门编程语言,所以不存在这一概念,我们这里说 ASP 是指 ASP 的编程语言 VBScript 在 ASP 里应用时的ASP 比较简单,它不具有真正意义的继承、重载等特性,尽管如此,它仍然是非常有用的,它降低了我们编程的复杂度,使我们的程序模块更加合理。ASP 支持什么 ASP 比较简单,

liaojiafan的专栏 894

ASP详解

 首先ASP是由事件和方法(它们就是构成的成员了)构成的,如果大家还没有接触过,可以先看看下面的说明: 在 Class 块中,成员通过相应的声明语句被声明为 Private(私有成员,只能在内部调用) 或 Public(公有成员,可以在内外部调用) 。被声明为 Private 的将只在 Class 块内是可见的。被声明为 Public 不仅在 Class 块的内部是可见的,对 Class

有风无度-XfengNet 605

ASP的入门

 在ASPClass成员通过相应的声明语句,被声明为 Private(私有成员,只能在内部调用)或 Public(公有成员,可以在内外部调用) 。被声明为 Private 的将只在 Class 块内是可见的。被声明为 Public 不仅在 Class 块的内部是可见的,对 Class 块之外的代码也是可见的。没有使用Private 或 Public 明确声明的被默认为Public。

有风无度-XfengNet 515

Asp中的设计和使用

严格地说,ASP 并不是一门编程语言,所以不存在这一概念,我们这里说 ASP 是指 ASP 的编程语言 VBScript 在 ASP 里应用时的ASP 比较简单,它不具有真正意义的继承、重载等特性,尽管如此,它仍然是非常有用的,它降低了我们编程的复杂度,使我们的程序模块更加合理。它支持以下内容: 1、公有成员变量、私有成员变量、属性 2、公有成员函数、私有成员函数

Eric.liu's Tech Space 2882

ASP 编程

<br />首先ASP是由事件和方法(它们就是构成的成员了)构成的,ASP比较简单,它不具有真正意义的继承、重载等特性,尽管如此,它仍然是非常有用的,它降低了我们编程的复杂度,使我们的程序模块更加合理。 它支持以下内容: <br />公有成员变量、私有成员变量、属性<br />公有成员函数、私有成员函数<br />构造函数、析构函数<br />在 Class 块中,成员通过相应的声明语句被声明为 Private(私有成员,只能在内部调用) 或 Public(公有成员,可以在内外部调用) 。被声

学习园地 585

Asp

 严格地说,ASP 并不是一门编程语言,所以不存在这一概念,我们这里说 ASP 是指 ASP 的编程语言 VBScript 在 ASP 里应用时的ASP 比较简单,它不具有真正意义的继承、重载等特性,尽管如此,它仍然是非常有用的,它降低了我们编程的复杂度,使我们的程序模块更加合理。 ASP 支持什么 ASP 比较简单,它不具有真正意义的继承、重载等特性。它支持以下内容:  公有

东亮博客 872

ASP的数据库

ASP的数据库一、前言  提到ASP操作数据库,大多数人会想到:共用的连接字串ConStr、Conn.Open ConStr建立数据库连接、Conn.Execute SqlCmd方式执行命令、RecordSet.Open Sql,Conn,1,1取得记录集,的确这种方法被99%的人或公司采用。对于操作数据库过程中产生的错误,恐怕99%的人不会进行处理,要么在程序的开头加入on error r

编程手札 9946

ASP的使用

这几天在整理计算机上的资料时,发现了一些自己以前学习时用过的资源,随着时间的推移,有些东西也已经忘得差不多了,趁现在有空整理一下,顺便重新温习一下这些知识。随着.net的出现,很多人都已经将目光转向了它的OOP和方便的可视化编程模式,我也不例外。即便如此,个人认为ASP并非就没有用处了,尤其在做一些中、小型项目的时候,不管从成本还是其它一些因素上考虑,ASP都是个比较理想的选择。之前从事ASP项目

偶滴怪怪 749

ASP

声明一个名为aspcn的 Class aspcnPrivate aspcn初始化Private Sub Class_Initializeaspcn="Aspcn Is Good!"End Sub 定义一个函数Public Function DoIt()DoIt=aspcnEnd Function定义一个方法Public Sub QueryStr(stat)Response.wr

gamestar1的专栏 830

asp的使用

这几天在整理计算机上的资料时,发现了一些自己以前学习时用过的资源,随着时间的推移,有些东西也已经忘得差不多了,趁现在有空整理一下,顺便重新温习一下这些知识。随着.net的出现,很多人都已经将目光转向了它的OOP和方便的可视化编程模式,我也不例外。即便如此,个人认为ASP并非就没有用处了,尤其在做一些中、小型项目的时候,不管从成本还是其它一些因素上考虑,ASP都是个比较理想的选择。之前从事ASP项目

思科网络 775

asp定义的格式

class Vbclass  dim  vbi  sub vbshow    vbi=1    response.write "您好"  end subend classdim Vbcset Vbc=new Vbclass  创建对象Vbc.vbshow            调用方法response.write Vbc.vbi   调用累的属性dim Vbc as new Vbcl

我的学习笔记 799

ASP 专题

严格地说,ASP 并不是一门编程语言,所以不存在这一概念,我们这里说 ASP 是指 ASP 的编程语言 VBScript 在 ASP 里应用时的ASP 比较简单,它不具有真正意义的继承、重载等特性,尽管如此,它仍然是非常有用的,它降低了我们编程的复杂度,使我们的程序模块更加合理。 ASP 支持什么 ASP 比较简单,它不具有真正意义的继承、重载等特性。它支持以下内容:

明枫驿站 562

ASP/ASP.net中调用java

在开发过程中偶尔会遇到要在ASP/ASP.NET中调用Java写的,以实现之前已经用JAVA实现的功能,下面就以一个简单示例说明详细的使用方法:1、创建java文件:使用任何你喜欢的编辑器编辑以下内容:public class hello{    public String helloWorld(String s)    {          if(s == null)             

kingofbird的专栏 895

asp中使用

我们一般认为,是面向对象编程所特有的。但是,在asp中也可以使用的不过这种的实现方法,更象一个属性和方法的集合。很多面向对象的思想并没有体现出来,毕竟ASP使用的VBscript,呵呵而VB等语言都是面向过程的。请看下面的例子 'class.asp <% class A '定义A function aa(a,b) '定义函数,有两个参数a,b response.write a+b '...

weixin_30367945的博客 102
上一篇: showModalDialog()、showModelessDialog()方法使用详解
下一篇: 考研??
xf229
博客等级 码龄20年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值