資源描述:
《VB類模塊教程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、對程序員和編程愛好者來說,VB中類的技術(shù)是學(xué)習(xí)中的一個難點,在大型軟件的開發(fā)過程中,模塊(Moudle)、控件(Active?ocx)、鏈接庫(Active?dll)和類(Class?moudle)構(gòu)成了系統(tǒng)化、高效化的軟件工程,而類的技術(shù)是控件和鏈接庫技術(shù)的基礎(chǔ),因此掌握類的理論和編程方法是非常有意義的。(一)類的基本定義和應(yīng)用概述; 類是包含了方法、屬性、數(shù)據(jù)成員的高級代碼模塊,它既在模塊的范疇之內(nèi),又是一個沒有圖形界面的Active?ocx,程序員可以象使用控件一樣使用它,但卻不能看到它,值得注意的是,類是不能繼承的。類能夠使我們高效的
2、完成對某一個或者某幾個特定的對象的復(fù)雜操作,對象的動作就是類的方法,對象的屬性就是類的屬性過程。相對而言,如果編程的對象是一組事物,那么,我們采用標(biāo)準(zhǔn)模塊的方式是非常合適的,在下列兩種情況下,應(yīng)該使用類進(jìn)行代碼處理: (1)創(chuàng)建大量性質(zhì)相近的對象; (2)提高代碼的封裝性?! ☆惖膭?chuàng)建非常簡單,在進(jìn)行代碼編寫的時候,在“工程”菜單中選擇“添加類模塊”項目,就可以添加一個空白的類?! ?類文件一般以.cls作為擴(kuò)展名保存。 ?。ǘ╊惖姆椒ǖ膶崿F(xiàn); 類的方法類似于動態(tài)鏈接庫的接口函數(shù),它能夠接受其他窗體代碼的指定類型參數(shù),并且傳遞到類中。一
3、般來說類的方法是能夠指定是否有返回值的。它在類中通常是一個public過程。請看下面的代碼示例,它使一個密碼框拒絕非字母的輸入: ?。?)類cls的代碼; ?Option?Explicit'變量檢查 ? Private?WithEvents?mytxt?As?TextBox ?'本類中的方法接受和控制一個text密碼框 ? Dim?isNUM?As?Boolean ? '類的模塊級變量 ? Public?Sub?Attach(itTEXT?As?TextBox) ? '接受外部變量到mytxt中 ? Set?mytxt?=?i
4、tTEXT ?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.Prin
5、t?mytxt.Text '調(diào)試輸出密碼框內(nèi)容 End?Sub ?'類的代碼結(jié)束(2)類的引用; 已經(jīng)編寫完成的類可以經(jīng)過兩種格式進(jìn)行引用,第一種方式:Private(public或者dim)?myCLS(指定的類名)?As?New?cls(編寫完成的類名);第二種方式較多用于程序編寫風(fēng)格較“老”的程序員:首先在窗體代碼中進(jìn)行模塊級聲明──Dim?myCLS?As?cls,然后在具體代碼過程中進(jìn)行具體定義──?Set?mycls?=?New?cls。這兩種方式的效率和代碼的簡潔性方面可能會有所差別,但在筆者的編程實踐中,并沒有
6、什么特別的感覺,不過我較多使用第一種方式,因為它書寫起來更加方便。另外,在代碼結(jié)束的時候,使用?Set?myCLS?=?Nothing來取消類的資源占用是一種非常好的編程習(xí)慣。 在窗體form1中(窗體有一個密碼框控件text1,passworldchar="*")添加以下代碼: Option?Explicit Private?myCLS?As?New?cls '引用cls Private?Sub?Form_Load() myCLS.Attach?Text1 '啟動類 End?Sub '在代碼結(jié)束時記得釋放資源 P
7、rivate?Sub?Form_Unload(Cancel?As?Integer) Set?myCLS?=?Nothing End End?Sub 本文代碼展示了類的方法的代碼編寫過程和調(diào)用方式(盡管它和類的事件非常相似),它的效果是,如果密碼框中被輸入了非字母,則系統(tǒng)振鈴,并刪除密碼框中的原來的數(shù)據(jù)──在一定程度上保護(hù)密碼。類的方法可以不需要任何參數(shù),這一點類似一個public的函數(shù)或者過程,它也是類中使用最廣泛的。在下一篇文章中我將討論,如何使用類的屬性、事件和方法進(jìn)行綜合編程.在Visual?Basic?6.0類的技術(shù)與應(yīng)用(上)
8、(以下簡稱上文)中,我們討論了類的理論、類的創(chuàng)建和類的方法的編程實踐,實際上,類之所以能夠在軟件工程中廣泛應(yīng)用,最主要的一點是它可以非常方便的封裝許多