我曾学过C++,C++中有强大的类功能。ASP中也可以使用类,不过功能相对薄弱。
使用类时,先用set obj=new objClass建立一个实例,在建立时将会同步调用类构造函数class_initialize(可自定义),在清除时调用析构函数class_terminate,这两个函数是不带参数的。
类实例建立后,可用obj.method访问类的公用函数和变量(即未限定或public限定的函数);而对于private限定的函数或变量,则只能在类内部调用,不能以obj.method方法访问。
以下是一个简单的TV类:
<%
class TV '类声明
private channel '定义私有变量channel(电视频道)
private sub class_initialize '类构造函数
channel=1
end sub
public function getChannel() 'public限定
getChannel=channel
end function
sub setChannel(c) '未限定
channel=c
end sub
end class
set otv=new TV '新建类实例
response.write otv.getChannel()
otv.setChannel 5
response.write "<BR>"&otv.getChannel()
%>
这个类没有指定析构函数。如果在类中使用了组件,则有必要析构一下的。
对于类中的私有部分(channel和class_initialize)只能在类中使用(getChannel=channel),而在类外的譬如response.write otv.channel等方法都是无效的。至于公有部分(getChannel和setChannel)则可随意使用(response.write otv.getChannel())。
不过ASP中似乎不支持友元类(friend class),以后如有新发现,再作总结。