欢迎光临
我们一直在努力

VBscript 类的设计(一)-ASP教程,脚本编码

建站超值云服务器,限时71元/月

应miles的要求,同时也作为类设计的一个例子,我把我设计日期类的过程整理出来,写成这篇文章,供大家做个参考。也希望这篇文章能抛砖引玉,让大家写出更好,更多的类来。文中有不尽的地方,还请指正。

(一)vbscript自定义类

简单的说,类就是对象,它具有属性和方法。在vbscript里自定义类比c++,java要简单得多。下面将设计一个日期类,用来显示出组合的表单对象。在设计的同时,我们也会说明如何设计自定义类。

1、定义类的语法:class….end class

class及end class用来标识类块的开始和结束,class 标识符后面跟着的是类名称。现在我们把要设计的日期类命名为:dateclass 语法如下:

class dateclass



end class

在vbscript中使用些类建立新对象时,可以用new运算符。例如:

set newdate=new dateclass

2、属性和方法:private、public和property

private 用来定义仅能在类内部访问的变量和函数;public则用来定义类的界面,也就是可供外部访问的属性和方法,没有成为 private和public的成员,一律视为public;有和时候,我们要让外部可以访问,但是要指定访问的方法,这时候,就要用property,property语法如下:

public property [let|set|get] aa(…)



end property

property 必须和 let、set或get 配合使用。说明如下:

let 设置值,如:user.age=100

set 设置对象,如:set user.myobject=nobject

get 取得值,如:myage=user.age

3、设计日期类的属性和方法

现在我们来设计日期类的属性。为了显示日期,定义一个classdate,来存放日期,它的类型是public,这样可以让用户在类外部改变它;再设计一个函数来显示日期,取名为:datedisplay,类型为public,没有参数。程序如下:

<%

class dateclass

public classdate

public function datedisplay()

end function

end class

%>

4、加入显示日期的代码

现在我们来加入datedisplay的代码,程序如下:

<%

class dateclass

public classdate

public function datedisplay()

如果没有指定日期,那么设为当前日期

if classdate="" then

classdate=now()

end if

yy=year(classdate)

mm=month(classdate)

dd=day(classdate)

response.write "<input type=text name=yy size=4 maxlength=4 value="&yy&">年"&vbcrlf

response.write "<select name=mm>"&vbcrlf

for i=1 to 12

if i=mm then

response.write "<option value="&i&" selected>"&i&"</option>"&vbcrlf

else

response.write "<option value="&i&">"&i&"</option>"&vbcrlf

end if

next

response.write "</select>月"&vbcrlf

response.write "<select name=dd>"&vbcrlf

for i=1 to 31

if i=dd then

response.write "<option value="&i&" selected>"&i&"</option>"&vbcrlf

else

response.write "<option value="&i&">"&i&"</option>"&vbcrlf

end if

next

response.write "</select>日"&vbcrlf

end function

end class

%>

把上面的代码存为dateclass1.asp 好了,现在我们已经写好了这个日期类,下面来看看使用的情况

5、调用类 include

在其它程序中使用这个类,只要用include 把dateclass1.asp包含进来。下面我们写一个测试的程序,文件名为 test1.asp

<!–#include file="dateclass1.asp" –>

<%

set newdate= new dateclass

response.write "调用显示:<br>"

newdate.datedisplay

response.write "<br>显示classdate的值:<br>"

response.write newdate.classdate

response.write "<br>设置classdate的值:<br>"

newdate.classdate=cdate("2005/6/15")

上一句也可以写成:

newdate.classdate="2005/6/15"

response.write "<br>再调用显示:<br>"

newdate.datedisplay

set newdate=nothing

%>

把两个文件放在同一个目录下,运行test1.asp 好了,应该已经看到结果了。但是这样的设计还有一些问题:

1、如果用户指定的classdate不是日期型,那么日期就会变成1900年1月1日;

2、如果显示多个日期,表单对象的名字不能是一样的;

3、最好加入css;

4、最好还能加入闰年的判断;

5、不是每个月都有31天;

带着这些问题,我们将会继续……..

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » VBscript 类的设计(一)-ASP教程,脚本编码
分享到: 更多 (0)