ASP 类专题

严格地说,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

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 函数,显示“释放对象”

(0)

相关推荐

  • ASP 类专题

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

  • Asp类 的数据库领域

    奶奶的,Asp类 是真不好学啊,看着简单,可真到用的时候,网上的代码是都报错啊!! 郁闷了恩久!! 3天了,终于调试出来了,一个简单的 数据库类模型,不敢独享,拿出来大家分享吧!本作品 归 站长中国 www.zzcn.net 彭彭所有 ,你们拷贝的时候不许去掉版权,否则拷贝的人全家死光光!!!!呵呵..:) 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <!DOCTYPE html PUBLI

  • ASP 类 Class入门 推荐

    Class 声明 声明一个类的名字,就是定义一些变量,属性,方法来组成一个类.我们常常看到别的程序语言中中都有类的说明,PHP,VB,C++,这个在VBScript中的类的说明,我是第一次听到,我们的日常工作就是网站开发,在这个里面多多少少搞出点经验,像模像样也能自诩为"内行",所以我就来分享一下我所知道的这个新的东东.我们来看看下面的这个代码吧!(window2000+IIS5.0通过测试) 类的定义1 yyh.asp<%''声明一个名为yh的类 Class yh Privat

  • 如何编写一个ASP类

    前几天大佛写了"ASP设计模式",可能有些初学者或者刚刚接触ASP的朋友不一定完全看得明白,偶就整理了一下编写一个ASP类的方法,大部分是从网上找来的.希望对朋友们有帮助.  <ASP设计模式>(作者 我佛山人): dispbbs.asp?boardID=20&ID=247879 首先ASP的类是由事件和方法(它们就是构成类的成员了)构成的,如果大家还没有接触过,可以先看看下面的说明: 在 Class 块中,成员通过相应的声明语句被声明为 Private(私有成员,

  • ASP类Class入门 推荐

    Class 声明 声明一个类的名字,就是定义一些变量,属性,方法来组成一个类.我们常常看到别的程序语言中中都有类的说明,PHP,VB,C++,这个在VBScript中的类的说明,我是第一次听到,我们的日常工作就是网站开发,在这个里面多多少少搞出点经验,像模像样也能自诩为"内行",所以我就来分享一下我所知道的这个新的东东.我们来看看下面的这个代码吧!(window2000+IIS5.0通过测试) 类的定义1 yyh.asp <% ''声明一个名为yh的类 Class yh Priv

  • ASP 类 Class入门

    Class 声明 声明一个类的名字,就是定义一些变量,属性,方法来组成一个类 这是真的!!!?VBScript中能用类!?!?不知道能不能用于ASP!?这样的话,我就不是能写出像object一样的ASP程序?!说干就干!实践是检验真理的唯一标准,自个动手吧! 我们常常看到别的程序语言中中都有类的说明,PHP,VB,C++,这个在VBScript中的类的说明,我是第一次听到,我们的日常工作就是网站开发,在这个里面多多少少搞出点经验,像模像样也能自诩为"内行",所以我就来分享一下我所知道的

  • ASP类的写法

    <% Class myClassName Private int_ID '分类id '类初始化 Private Sub Class_Initialize() m_strError = "" End Sub '类释放 Private Sub Class_Terminate() m_strError = "" End Sub '-----读写各个属性--------------------------- Public Property Get ID ID = in

  • 遭遇ASP类的事件设计

    作者的blog: http://blog.csdn.net/oyiboy/ 我之所以还是要宣扬用MVC来开发ASP,只是想让面向过程的思考方式变成面向对象的思考方式,这个对于任何一种语言的开发员来说都是有好处的. MVC是个标准模型,ASP要实现似乎真的是很困难,但是标准是标准,运用是运用,既然ASP要实现这个模型很难,那可以尝试着将MVC模型变形成适合自己的模型. "不管白猫黑猫能逮到耗子的就是好猫."而对于我们开发者来说,不管是什么模型,能正确的指引我们的思路,完美完成项目的模型就

  • 硬盘文件搜索代码(ASP类)

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% dim st st=timer() '************************************************************* '*************搜索硬盘文件的类SearchFile ************* '*************调用方法: ************* '*************Set new

  • Asp操作Xml的精炼类,含示例代码

    以下保存成 App.xml , 与asp文件放在相同目录下! 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <Root> <About> <Version>1.0 Beta</Version> <LatestVersion>1.0 Beta</LatestVersion> <Author>Author</Auth

随机推荐