ASP 类专题_ASP教程-查字典教程网
ASP 类专题
ASP 类专题
发布时间:2016-12-29 来源:查字典编辑
摘要:严格地说,ASP并不是一门编程语言,所以不存在类这一概念,我们这里说ASP类是指ASP的编程语言VBScript在ASP里应用时的类。ASP...

严格地说,ASP并不是一门编程语言,所以不存在类这一概念,我们这里说ASP类是指ASP的编程语言VBScript在ASP里应用时的类。

ASP类比较简单,它不具有真正意义类的继承、重载等特性,尽管如此,它仍然是非常有用的,它降低了我们编程的复杂度,使我们的程序模块更加合理。

ASP类支持什么ASP类比较简单,它不具有真正意义类的继承、重载等特性。它支持以下内容:

公有成员变量、私有成员变量、属性

公有成员函数、私有成员函数

构造函数、析构函数

创建和使用一个最简单的ASP类一些初学者不理解类和对象的区别,打个比方,类好比是图纸,对象好比是根据图纸制作出的实物。该示例给出了ASP类及对象的简单示例,该类仅含有一个成员函数,用以解释类的基本格式,并给出创建、释放对象的方法。详细内容ASP类成员变量、成员函数、构造析构函数这是一个比较完整的类讲解,所有的讲解都有注释的方式写在程序的旁边。通过阅读本节,对ASP类有一个较为全面的理解,可以进行ASP类模块的开发。详细内容ASP类属性ASP类属性与ASP类公有成员变量相比具有以下一些特点。

可以在赋值的同时执行其它功能

可以确定赋值范围

可以将设定只读、只写属性

所以ASP类属性也是比较常用且重要的。详细内容ASP类组合ASP类的功能实在有限,所以有时我们要实现复杂的功能,只好用组合来实现。

创建一个最简单的ASP类

classCFoo

subPrintHello()

response.Write"HelloWorld!"

endsub

endclass

可以看出,ASP类的基本结构是:

class类名

类代码

endclass

使用一个最简单的ASP类

dimobj

setobj=newCFoo'使用setnew创建对象,由于不是服务器组件,所以不能用server.CreateObject创建

callobj.PrintHello'对象名称后加点,再跟成员变量、属性或函数,表示调用该对象的成员变量、属性或函数,将显示HelloWorld!

setobj=nothing'释放对象

ASP类里不能重载构造函数,所以我们不能使用类似于setobj=newCFoo("param")的语句来创建类。

ASP类的功能实在有限,所以有时我们要实现复杂的功能,只好用组合来实现。

classCFish

subSwim()

endsub

endclass

classCBird

subFly()

endsub

endclass

classCAnimal

dimfish

dimbird

privatesubclass_initialize()

setfish=newCFish

setbird=newCBird

endsub

privatesubclass_terminate()

setfish=nothing

setbird=nothing

endsub

endclass

dimanimal

setanimal=newCAnimal

callanimal.fish.Swim()'鱼游

callanimal.bird.Fly()'鸟飞

setanimal=nothing

ASP类属性

classCFoo

privatepvt

'属性写

publicpropertyletpropName(v)

pvt=v

endproperty

'属性读

publicpropertygetpropName()

PropName=pvt

endproperty

endclass

dimobj

setobj=newCFoo

obj.propName="属性值"

response.Write(obj.propName)'显示“属性值”

setobj=nothing

可以看出属性值相当于是在私有成员变量与外界之间架了一座桥梁,使双方可以互相通信。

有人就会问属性跟公有成员变量一样,它的存在又有什么独立的意义呢?

1、可以在赋值的同时执行其它功能

如下代码,相当于同时为两个成员变量赋值

publicpropertyletpropName(v)

pvt=v

另一个私有成员变量名="pvt的值:"&v

endproperty

2、可以确定赋值范围

假如上例中的属性写改为如下:

publicpropertyletpropName(v)

ifLen(v)<=5then

pvt=v

endif

endproperty

执行obj.propName="个十百千万亿"将不会为pvt赋值成功,因为该字符串的长度超过了5。

3、可以将设定只读、只写属性

如上例中,假如我们将let函数去掉,调用obj.propName="属性值"就会出错,因为这时候函数只可读。

classCFoo

dimpublicParam'用dim申明公有成员变量

privateprivateParam'用private申明私有成员变量

'publicParam="公有"'不能在class标记以内、类函数以外为成员变量赋值

'constMAX_LEN=5'不能在class标记以内、类函数以外使用const

'该函数为构造函数,在使用setnew创建对象时,自动执行

privatesubclass_initialize()

publicParam="公有"'可以在这里为成员变量赋值

privateParam="私有"

endsub

'该函数为析构函数,在使用setnothing释放对象时,自动执行

privatesubclass_terminate()

response.Write"释放对象"

endsub

'公有成员函数(过程)

'成员函数(过程)不需要也不能申明

subPrintParam(index)

ifindex=1then

callPrintPublicParam()

elseifindex=2then

callPrintPrivateParam()

endif

endsub

'私有成员函数(过程)

'只是比公有成员函数(过程)多一个private

privatesubPrintPublicParam()

response.WritepublicParam

endsub

privatesubPrintPrivateParam()

response.WriteprivateParam

endsub

endclass

dimobj

setobj=newCFoo'自动调用class_initialize函数,为publicParam、privateParam赋值

obj.publicParam="新的公有"

obj.privateParam="新的私有"'将发生错误,因为privateParam是私有变量

callobj.PrintParam(1)'显示publicParam的值

callobj.PrintPublicParam()'将发生错误,因为PrintPublicParam是私有函数

setobj=nothing'自动调用class_terminate函数,显示“释放对象”

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ASP教程学习
    热门ASP教程学习
    编程开发子分类