對程序員和編程愛好者來說,VB中類的技術(shù)是學(xué)習(xí)中的一個難點(diǎn),在大型軟件的開發(fā)過程中, 模塊(Moudle) 、控件(Activeocx) 、鏈接庫( Active dll) 和類( Classmoudle) 構(gòu)成了系統(tǒng)化、高效化的軟件工程,而類的技術(shù)是控件和鏈接庫技術(shù)的基礎(chǔ),因此掌握類的理論和編程方法是非常有意義的。
(一)類的基本定義和應(yīng)用概述;
類是包含了方法、屬性、數(shù)據(jù)成員的高級代碼模塊,它既在模塊的范疇之內(nèi),又是一個沒有圖 形界面的Activeocx,程序員可以象使用控件一樣使用它,但卻不能看到它,值得注意的是,類是不能繼承的。 類能夠使我們高效的完成對某一個或者某幾個特定的對象的復(fù)雜操作,對象的動作就是類的方法,對象的屬性就是類的屬性過程。相對而言,如果編程的對象是一組事物,那么,我們采用標(biāo)準(zhǔn)模塊的方式是非常合適的,在下列兩種情況下,應(yīng)該使用類進(jìn)行代碼處理:
?。?)創(chuàng)建大量性質(zhì)相近的對象;
?。?nbsp;2)提高代碼的封裝性。
類的創(chuàng)建非常簡單, 在進(jìn)行代碼編寫的時候,在 “工程”菜單中選擇“ 添加類模塊” 項(xiàng)目,就可以添 加一個空白的類。 類文件一般以.cls 作為擴(kuò)展名保存。
(二)類的方法的實(shí)現(xiàn); 類的方法類似于動態(tài)鏈接庫的接口函數(shù),它能夠接受其他窗體代碼的指定類型參數(shù),并且傳遞 到類中。一般來說類的方法是能夠指定是否有返回值的。它在類中通常是一個public過程。請看下面的代碼示例,它使一個密碼框拒絕非字母的輸入:
(1 )類cls的代碼;
Option Explicit '變量檢查
Private WithEvents mytxt As TextBox '本類中的方法接受和控制一個text密碼框
Dim isNUM As Boolean '類的模塊級變量
Public Sub Attach(itTEXT As TextBox) '接受外部變量到mytxt中
Set mytxt = itTEXT
End Sub
Private Sub mytxt_KeyUp(KeyCode As Integer,Shift As Integer)
isNUM = (KeyCode >= 65) And (KeyCode <= 90) ' 測試密碼框的鍵盤輸入是否是英文字母
If isNUM = False Then
Beep mytxt.Text = "" ' 如果輸入不是英文字母則響鈴并且清空密碼框內(nèi)容
MsgBox"非法字符輸入! "
End If
Debug.Print mytxt.Text ' 調(diào)試輸出密碼框內(nèi)容
End Sub
'類的代碼結(jié)束
( 2)類的引用;
已經(jīng)編寫完成的類可以經(jīng)過兩種格式進(jìn)行引用,
第一種方式:Private(public或者 Dim) myCLS (指定的類名)As Newcls(編寫完成的類名);
第二種方式較多用于程序編寫風(fēng)格較“老” 的程序員:
首先在窗體代碼中進(jìn)行模塊級聲明 ――DimmyCLS As cls,
然后在具體代碼過程中進(jìn)行具體定義 ――Setmycls = Newcls。
這兩種方式的效率和代碼的簡潔性方面可能會有所差別,但在筆者的編程實(shí)踐中,并沒有什么特別的感覺,不過我較多使用第一種方式,因?yàn)樗鼤鴮懫饋砀臃奖恪?
另外,在代碼結(jié)束的時候,使用SetmyCLS = Nothing來取消類的資源占用是一種非常好的編程習(xí)慣。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報。