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