网络编程
位置:首页>> 网络编程>> Asp编程>> ASP怎么谈到应用到类的?(3)

ASP怎么谈到应用到类的?(3)

作者:cnbruce 来源:cnbruce博客 发布时间:2008-03-10 11:21:00 

标签:类,面向对象,class,asp
 

那么,ASP中怎么又引入了类?这类是什么?又是如何应用?

在ASP的脚本语言中,VBscript里有个Class关键字,用它可来声明一个自定义类。比如

Class name
    statements
End Class 

这里statements里可以声明公有或私有的成员,包括函数、成员和属性。


而Javascript则是用一个函数来“声明”类,然后在该函数里通过 this.prototype 定义属性,this.func 定义方法。


哪个简单拣哪个。在定义了 类也就是 class 的名称 name 后,这里面可以做些什么东西呢?


第一个。MSDN文档:在 Visual Basic 6.0 中,在创建和毁坏类模块时,类模块使用 Initialize 和 Terminate 事件来执行所有必要的操作。当在 New 语句之后第一次遇到对象时,会引发 Initialize 事件,当释放对象的最后一个引用时,会立即引发 Terminate 事件。但是,可在执行期间随时直接调用这些事件方法。

所以经常会看到这样的例子:



Class cnbruce   '声明一个名为cnbruce的类 
Private cnrose
Private Sub Class_Initialize
    cnrose="My Name is cnrose."
End Sub 
Private Sub Class_Terminate()
End Sub 
End Class 

喏,这也就是一个初始化。

此外,asp类中具有let和get方法。比如在 以上代码的Class cnbruce ... End Class之间加入:

Public Property get YName
    YName=cnrose
End Property

即变成了:





Class cnbruce   '声明一个名为cnbruce的类 
Private cnrose
Private Sub Class_Initialize
    cnrose="My Name is cnrose."
End Sub 
Private Sub Class_Terminate()
End Sub 
Public Property get YName
    YName=cnrose
End Property 
End Class 

那么如何将该值提取呢,比如

Set aaa=New cnbruce 
response.write aaa.YName 

注意aaa.YName已经有些感觉了。aaa即为定义为cnbruce类的对象,最终输出显示为该类对象中的YName get值,其值内容为 变量cnrose的值,并且该值已经被初始化,所以,最终的结果是“My Name is cnrose.”

这是 get ,直接提取已经封装好的类的内部的东西,那么 let 呢?即是外部对类的交互访问操作。比如我现在外部定义的值应用到类中。即先定义:

public property let MName(nnn)
    cnrose=nnn
end property 

它的意思很简单,参数nnn的值将随着外部不同的值而赋到变量cnrose上。那么OK结合上的程式,即最中输出显示的内容,也就是显示的变量cnrose的内容,不是初始化的内容,而是由let 外部应用的不定值。那如何应用let 呢。




aaa.MName="sdasdasd" 

直接定义值就可以了。那么现在看看全部程序:




<%
Class cnbruce 
Private cnrose
Private Sub Class_Initialize
    cnrose="My Name is cnrose."
End Sub 
Public Property get YName
    YName=cnrose
End Property 
public property let MName(nnn)
    cnrose=nnn
end property 
End Class 
Set aaa=New cnbruce 
aaa.MName="hahahoho"
response.write aaa.YName 
%> 

虽然定义的是aaa.MName的值为"hahahoho",但根据public property let MName(nnn),其值到变量cnrose,SO在输出aaa.YName的时候,根据Public Property get YName,结果的值是什么也就不奇怪了。/


至于功能型的程式,则在类中定义为 函数 Function,或者子程序 Sub 了。

SO,总的说来,就只是功能的封装,以及在应用的时候好写好看(直接 类名.方法、类名.属性-_-!),但不要指望它像Java 或.Net那样具有面向对象的思想服务。


时间有限,虎头蛇尾将就一下了。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com