<% '这两个是常量,用于内部消息输出时用的。 Const ERR_MSG = 1 '错误信息 Const INF_MSG = 2 '一般信息 '定义用户类User '这个类的用途很简单,里面可以保存一个用户的简单信息(这里只有用户名和用户信息), '并可以设置这个类是否允许修改(这可以防止在程序中被程序员无意间修改了类并将类写回数据库造成一些不必要的困扰) '由于是演示,所以我这里都使用Response.write输出,实际中的使用应该是将错误抛出,使用Error.raise ... '并为了说明属性和内部变量的不同,用户名我使用属性来实现,而用户信息我使用内部变量来实现 Class User '内部私有变量定义,这些是给属性用的 Private strUserName '用户名 Private bReadOnly '用户是否只读 '公开变量定义,这些变量就是在外面可以直接修改的,而这个变量的读取没法进行有效地控制 Public info '用户信息 '初始类,在new这个class的时候,这个方法会被自动调用,为了标明什么时候我们调用了这个方法,我在里面加了一个输出。 Private Sub Class_Initialize() Message "类User初始化",INF_MSG End Sub '终止类,只要一退出该类,就会触发该事件。 Private Sub Class_Terminate() Message "类User终止",INF_MSG End Sub '设置用户是否只读,当设置用户只有只读的时候,用户的属性没法修改,只能读取 Public Property Let readOnly(ByVal tro) bReadOnly=tro End Property '返回用户是否只读 Public Property Get readOnly readOnly=bReadOnly End Property '属性用户名的赋值 Public Property Let userName(ByVal tName) If bReadOnly=false Then strUserName=tName else Message "用户当前为只读状态,不能修改它的用户名!",ERR_MSG End If End Property '取得属性用户名 '注意到default了没?这是默认属性,在底下会演示 Public Default Property Get userName userName=strUserName End Property '自定义方法,输出用户的信息 Public Sub PrintInformation '注意一下:我这里直接使用strUserName输出,一般来说这是不适合的,因为这是内部私有变量, '可能你这个变量在输入输出的时候还会再作一些数据内容的转换,而直接输出内部变量,就可能 '导致这些操作不会进行;一般来说,只有在一种情况下才建议直接输出内部变量:你的Get方法中 '会对输出数据进行一些统计,而这些统计在你这个方法也会进行,这就导致统计重复,这时候就应 '该在方法中直接使用属性对应的内部变量 Message "用户名:" & strUserName & "<br />" & "用户信息:" & info,INF_MSG End Sub '私有方法,内部调用,不提供外部调用,用于输出各种信息 Private Sub Message(s,t) Select Case t Case INF_MSG '一般输出信息 Response.Write "<p>" & s & "</p>" Case ERR_MSG '错误输出信息 Response.Write "<p style='color:red'>" & s & "</p>" Case Else '未定义的信息类型,则不输出 End Select End Sub End Class %> 下面我们来实际使用一下这个类:<br /> <% Dim userA Set userA = New User '这是简单的属性设置 userA.userName = "子乌" userA.info="一个普通的程序员" '输出信息 userA.printInformation '输出userA的默认属性(就是User) Response.Write "<p>userA的默认属性:" & userA & "</p>" '设置userA为只读,不允许修改 userA.readOnly=true '这时候我试图修改姓名和信息 userA.userName="不是子乌"'应该会提示错误 userA.info="既然不是子乌,那就不是一个普通的程序员了……而是一个非常普通的程序员"'被修改了~~ '再次输出信息 userA.printInformation set userA = Nothing %>
------文章版权归原作者所有, 未经允许请勿转载, 如有任何问题请联系我们。
|