<% '這兩個是常量,用于內部消息輸出時用的。 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 %>
------文章版權歸原作者所有, 未經允許請勿轉載, 如有任何問題請聯系我們。
|