<%
asp class
严格地说,ASP 并不是一门编程语言,所以不存在类这一概念,我们这里说 ASP 类是指 ASP 的编程语言 VBScript 在 ASP 里应用时的类。
ASP 类比较简单,它不具有真正意义类的继承、重载等特性,尽管如此,它仍然是非常有用的,它降低了我们编程的复杂度,使我们的程序模块更加合理。
ASP 类支持什么 ASP 类比较简单,它不具有真正意义类的继承、重载等特性。它支持以下内容:
公有成员变量、私有成员变量、属性
公有成员函数、私有成员函数
构造函数、析构函数
创建和使用一个最简单的 ASP 类 一些初学者不理解类和对象的区别,打个比方,类好比是图纸,对象好比是根据图纸制作出的实物。 该示例给出了 ASP 类及对象的简单示例,该类仅含有一个成员函数,用以解释类的基本格式,并给出创建、释放对象的方法。 详细内容 ASP 类成员变量、成员函数、构造析构函数 这是一个比较完整的类讲解,所有的讲解都有注释的方式写在程序的旁边。 通过阅读本节,对 ASP 类有一个较为全面的理解,可以进行 ASP 类模块的开发。 详细内容 ASP 类属性 ASP 类属性与 ASP 类公有成员变量相比具有以下一些特点。
可以在赋值的同时执行其它功能
可以确定赋值范围
可以将设定只读、只写属性
所以 ASP 类属性也是比较常用且重要的。 详细内容 ASP 类组合 ASP 类的功能实在有限,所以有时我们要实现复杂的功能,只好用组合来实现。
创建一个最简单的 ASP 类
class CFoo
sub PrintHello()
response.Write "Hello World!"
end sub
end class
可以看出,ASP 类的基本结构是:
class 类名
类代码
end class
使用一个最简单的 ASP 类
dim obj
set obj = new CFoo '使用 set new 创建对象,由于不是服务器组件,所以不能用 server.CreateObject 创建
call obj.PrintHello '对象名称后加点,再跟成员变量、属性或函数,表示调用该对象的成员变量、属性或函数,将显示 Hello World!
set obj = nothing '释放对象
ASP 类里不能重载构造函数,所以我们不能使用类似于 set obj = new CFoo("param") 的语句来创建类。
ASP 类的功能实在有限,所以有时我们要实现复杂的功能,只好用组合来实现。
class CFish
sub Swim()
end sub
end class
class CBird
sub Fly()
end sub
end class
class CAnimal
dim fish
dim bird
private sub class_initialize()
set fish = new CFish
set bird = new CBird
end sub
private sub class_terminate()
set fish = nothing
set bird = nothing
end sub
end class
dim animal
set animal = new CAnimal
call animal.fish.Swim() '鱼游
call animal.bird.Fly() '鸟飞
set animal = nothing
ASP 类属性
class CFoo
private pvt
'属性写
public property let propName(v)
pvt = v
end property
'属性读
public property get propName()
PropName = pvt
end property
end class
property let propName(v) 相当于一个过程,v是形参,用来向类属性传递值。
property get propName() 相当于一个函数,propName是函数名,用来返回类属性的值。
所有的property let和所有属性之间不能出现同名,所有的property get和所有属性之间也不能出现同名,但唯一的let可以和唯一的get同名。
在操作类实例的属性时,运用的是let和get的过程或函数名,而不是真实的属性名。
dim obj
set obj = new CFoo
obj.propName = "属性值"
response.Write(obj.propName) '显示“属性值”
set obj = nothing
可以看出属性值相当于是在私有成员变量与外界之间架了一座桥梁,使双方可以互相通信。
有人就会问属性跟公有成员变量一样,它的存在又有什么独立的意义呢?
1、可以在赋值的同时执行其它功能
如下代码,相当于同时为两个成员变量赋值
public property let propName(v)
pvt = v
另一个私有成员变量名 = "pvt 的值:" & v
end property
2、可以确定赋值范围
假如上例中的属性写改为如下:
public property let propName(v)
if Len(v) <= 5 then
pvt = v
end if
end property
执行 obj.propName = "个十百千万亿" 将不会为 pvt 赋值成功,因为该字符串的长度超过了 5。
3、可以将设定只读、只写属性
如上例中,假如我们将 let 函数去掉,调用 obj.propName = "属性值" 就会出错,因为这时候函数只可读。
class CFoo
dim publicParam '用 dim 申明公有成员变量
private privateParam '用 private 申明私有成员变量
'publicParam = "公有" '不能在 class 标记以内、类函数以外为成员变量赋值
'const MAX_LEN = 5 '不能在 class 标记以内、类函数以外使用 const
'该函数为构造函数,在使用 set new 创建对象时,自动执行
private sub class_initialize()
publicParam = "公有" '可以在这里为成员变量赋值
privateParam = "私有"
end sub
'该函数为析构函数,在使用 set nothing 释放对象时,自动执行
private sub class_terminate()
response.Write "释放对象"
end sub
'公有成员函数(过程)
'成员函数(过程)不需要也不能申明
sub PrintParam(index)
if index = 1 then
call PrintPublicParam()
elseif index = 2 then
call PrintPrivateParam()
end if
end sub
'私有成员函数(过程)
'比公有成员函数(过程)多一个 private
private sub PrintPublicParam()
response.Write publicParam
end sub
private sub PrintPrivateParam()
response.Write privateParam
end sub
end class
dim obj
set obj = new CFoo '自动调用 class_initialize 函数,为 publicParam、privateParam 赋值
obj.publicParam = "新的公有"
obj.privateParam = "新的私有" '将发生错误,因为 privateParam 是私有变量
call obj.PrintParam(1) '显示 publicParam 的值
call obj.PrintPublicParam() '将发生错误,因为 PrintPublicParam 是私有函数
set obj = nothing '自动调用 class_terminate 函数,显示“释放对象”
%>
分享到:
相关推荐
asp 面向对象编程的通用类.我的经典收藏,虽然我不是专业开发asp的,但有时候会用到.这个文件是我们公司以前开发人员花一个月时间整理出来的.绝对有价值.包含了asp 缓存类,数据库类,文件操作类,邮件类等等,包含了几乎...
asp面向对象,ASP中的CLASS类编写,可以参考一下
UpLoadClass 无组建上传ASP版
asp用json类:jsonObject.class.asp,很好用,内涵使用实例,可以直接将rs读取的数据转为json对象使用
'天枫ASP class v1.0鱼鱼修改版,集常用asp函数于一体 '天枫版权所有http://www.52515.net 'QQ:76994859 EMAIL:Chenshaobo@gmail.com '所有功能函数名如下: '-------------------------...
压缩包里面有类使用的帮助文件,做ASP的朋友如果需要上传文件可以用这个,挺好的
FusionCharts公司的flash组件在ASP运用的Class
Dim Cmd Set Cmd = New Cls_Command Class Cls_Command Private Re Public Function IsPositiveInteger(value) Set Re = New RegExp Re.Pattern = “^[1-9][\d]*$” Re.IgnoreCase = True Re....
首先配置class目录sina.asp里的四个参数 1.apiKey和secretKey是新浪创建应用时分配的(App Key,App Secret) 2.oauth_token和token_secret是通过授权后的得到的,可以在这里使用自己的apiKey和secretKey获取...
[学校班级]ASP.NET开发的同学录_net_class.zip源码ASP.NET网站源码打包下载[学校班级]ASP.NET开发的同学录_net_class.zip源码ASP.NET网站源码打包下载[学校班级]ASP.NET开发的同学录_net_class.zip源码ASP.NET网站...
dim obj set obj = New admin_login call obj.Main() set obj = nothing class admin_login Private Founderr, errmsg,Mesky Private Sub Class_Initialize() Founderr = False
ASP.NET,webBrowser控件,(浏览器),的简单使用 ASP.NET,webBrowser控件,(浏览器),的简单使用 ASP.NET,webBrowser控件,(浏览器),的简单使用 ASP.NET,webBrowser控件,(浏览器),的简单使用 ASP.NET...
'//ASP 模板引擎 (Taihom.Template.class v2.0) '//Code By Taihom '//Taihom 原创 '//版权说明 '//本类允许转载、复制和修改,但转载、复制和修改的同时请保留原始的出处和作者声明,这也是对作者Taihom劳动成果的...
[学校班级]麦穗网络课堂系统 v2009_class.zip源码ASP.NET网站源码打包下载[学校班级]麦穗网络课堂系统 v2009_class.zip源码ASP.NET网站源码打包下载[学校班级]麦穗网络课堂系统 v2009_class.zip源码ASP.NET网站源码...
风声 ASP 无组件上传类 是当前效率最高的ASP无组件上传程序之一。 风声 ASP 无组件上传类 自其V1.0发布就有自己鲜明的特点——易用;V1.02功能进一步加强,并且奠定了其在同类程序中高效率的地位;V2.0秉承其易用...
最好的ASP模板类Template要的来去
ASP实现无限级分类
[学校班级]ASP.NET开发的同学录_net_class(ASP.NET源码).rar
XML.Class(读增删改+属性读取+附注释)
C#_ASP.NET_oledb操作accessDB CLASSC#_ASP.NET_oledb操作accessDB CLASSC#_ASP.NET_oledb操作accessDB CLASSC#_ASP.NET_oledb操作accessDB CLASS