下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、對(duì)程序員和編程愛(ài)好者來(lái)說(shuō),VB中類的技術(shù)是學(xué)習(xí)中的一個(gè)難點(diǎn),在大型軟件的開(kāi)發(fā)過(guò)程中,模塊(Moudle)、控件(Activeocx)、鏈接庫(kù)(Activedll)和類(Classmoudle)構(gòu)成了系統(tǒng)化、高效化的軟件工程,而類的技術(shù)是控件和鏈接庫(kù)技術(shù)的基礎(chǔ),因此掌握類的理論和編程方法是非常有意義的。(一) 類的基本定義和應(yīng)用概述;類是包含了方法、屬性、數(shù)據(jù)成員的高級(jí)代碼模塊,它既在模塊的范疇之內(nèi),又是一個(gè)沒(méi)有圖形界面的Activeocx,程序員可以象使用控件一樣使用它,但卻不能看到它,值得注意的是,類是不能繼承的。類能夠使我們高效的完成對(duì)某一個(gè)或者某幾個(gè)特定的對(duì)象的復(fù)雜操作,對(duì)象的動(dòng)作就是類
2、的方法,對(duì)象的屬性就是類的屬性過(guò)程。相對(duì)而言,如果編程的對(duì)象是一組事物,那么,我們采用標(biāo)準(zhǔn)模塊的方式是非常合適的,在下列兩種情況下,應(yīng)該使用類進(jìn)行代碼處理:(1) 創(chuàng)建大量性質(zhì)相近的對(duì)象;(2) 提高代碼的封裝性。類的創(chuàng)建非常簡(jiǎn)單,在進(jìn)行代碼編寫的時(shí)候,在工程”菜單中選擇添加類模塊”項(xiàng)目,就可以添加一個(gè)空白的類。類文件一般以.cls作為擴(kuò)展名保存。(二) 類的方法的實(shí)現(xiàn);類的方法類似于動(dòng)態(tài)鏈接庫(kù)的接口函數(shù),它能夠接受其他窗體代碼的指定類型參數(shù),并且傳遞到類中。一般來(lái)說(shuō)類的方法是能夠指定是否有返回值的。它在類中通常是一個(gè)public過(guò)程。請(qǐng)看下面的代碼示例,它使一個(gè)密碼框拒絕非字母的輸入:(1)
3、類cls的代碼;OptionExplicit變量檢查PrivateWithEventsmytxtAsTextBox本類中的方法接受和控制一個(gè)text密碼框DimisNUMAsBoolean類的模塊級(jí)變量PublicSubAttach(itTEXTAsTextBox)接受外部變量到mytxt中SetmytxtitTEXTEndSubPrivateSubmytxt_KeyUp(KeyCodeAsInteger,ShiftAsInteger)isNUM=(KeyCode=65)And(KeyCode=90)測(cè)試密碼框的鍵盤輸入是否是英文字母IfisNUM=FalseThenBeepmytxt.Tex
4、t=如果輸入不是英文字母則響鈴并且清空密碼框內(nèi)容MsgBox非法字符輸入!EndIfDebug.Printmytxt.Text調(diào)試輸出密碼框內(nèi)容EndSub類的代碼結(jié)束(2)類的引用;已經(jīng)編寫完成的類可以經(jīng)過(guò)兩種格式進(jìn)行引用,第一種方式:Private(public或者dim)myCLS(指定的類名)AsNewcls(編寫完成的類名);第二種方式較多用于程序編寫風(fēng)格較“老”的程序員:首先在窗體代碼中進(jìn)行模塊級(jí)聲明DimmyCLSAscls,然后在具體代碼過(guò)程中進(jìn)行具體定義Setmycls=Newcls。這兩種方式的效率和代碼的簡(jiǎn)潔性方面可能會(huì)有所差別,但在筆者的編程實(shí)踐中,并沒(méi)有什么特別的感覺(jué)
5、,不過(guò)我較多使用第一種方式,因?yàn)樗鼤鴮懫饋?lái)更加方便。另外,在代碼結(jié)束的時(shí)候,使用SetmyCLS=Nothing來(lái)取消類的資源占用是一種非常好的編程習(xí)慣。text1,passworldchar=*)添加以下代碼:在窗體form1中(窗體有一個(gè)密碼框控件OptionExplicitPrivatemyCLSAsNewcls引用clsPrivateSubForm_Load()myCLS.AttachText1啟動(dòng)類EndSub在代碼結(jié)束時(shí)記得釋放資源PrivateSubForm_Unload(CancelAsInteger)SetmyCLS=NothingEndEndSub本文代碼展示了類的方法的代
6、碼編寫過(guò)程和調(diào)用方式(盡管它和類的事件非常相似),它的效果是,如果密碼框中被輸入了非字母,則系統(tǒng)振鈴,并刪除密碼框中的原來(lái)的數(shù)據(jù)在一定程度上保護(hù)密碼。類的方法可以不需要任何參數(shù),這一點(diǎn)類似一個(gè)public的函數(shù)或者過(guò)程,它也是類中使用最廣泛的。在下一篇文章中我將討論,如何使用類的屬性、事件和方法進(jìn)行綜合編程在VisualBasic6.0類的技術(shù)與應(yīng)用(上)(以下簡(jiǎn)稱上文)中,我們討論了類的理論、類的創(chuàng)建和類的方法的編程實(shí)踐,實(shí)際上,類之所以能夠在軟件工程中廣泛應(yīng)用,最主要的一點(diǎn)是它可以非常方便的封裝許多編程需要的屬性,這不僅使程序員在一定程度上克服控件(ocx)和鏈接庫(kù)(dll)設(shè)計(jì)和調(diào)試中的
7、復(fù)雜性,而且能夠提高程序代碼的簡(jiǎn)潔和高效性本文將討論完整的類的編程,包括方法、屬性和基本事件。(一)類的屬性的特征和定義;類似于標(biāo)準(zhǔn)控件的屬性,類的屬性允許用戶在指定的數(shù)據(jù)范圍內(nèi)進(jìn)行賦值,這些值被類內(nèi)的各個(gè)代碼部分所共享。屬性的獲得和傳遞需要經(jīng)過(guò)PropertyLet和PropertyGet語(yǔ)句進(jìn)行編程,當(dāng)然,我們首先需要在類中進(jìn)行全局或者模塊級(jí)的相應(yīng)變量定義。(二)事件的屬性和基本定義;和窗體的事件類似,類也有兩個(gè)基本的事件,Class_Initialize(類加載時(shí)觸發(fā))和Class_Terminate(類卸載時(shí)觸發(fā)),這兩個(gè)事件都是private的。實(shí)際上,我們完全可以忽略這兩個(gè)事件一要
8、你記得完善類的方法和屬性。類同樣可以定義自己的事件,它和方法的程序編寫格式類似,只不過(guò)需要WithEvents關(guān)鍵字進(jìn)行參數(shù)聲明,而且事件不能有任何命名參數(shù)或者可選參數(shù),它也沒(méi)有返回值。實(shí)際上,結(jié)構(gòu)良好的方法和屬性完全可以替代結(jié)構(gòu)復(fù)雜的類的事件。(三)類的方法、事件和屬性的編程實(shí)例;本程序的設(shè)計(jì)目的是,通過(guò)類控制窗體中文本框的內(nèi)容的全部大寫、小寫和逆向排序轉(zhuǎn)化。為了方便代碼的書寫和調(diào)用,我在類中引用了枚舉的編程方法。以下代碼在類Classi:OptionExplicitPrivateWithEventsmyTXTAsTextBox方法的參數(shù)接口PublicEnumsTYLELcaseit小寫屬
9、性Lbigit大寫屬性Nlogoit逆向排序?qū)傩訣ndEnum自定義枚舉,用來(lái)實(shí)現(xiàn)屬性的自動(dòng)賦值PrivatemvarBiaozhiAssTYLE實(shí)現(xiàn)枚舉常量的連接PublicFunctiondONE()AsStringDONE方法用來(lái)根據(jù)指定的枚舉屬性,對(duì)窗體文本框進(jìn)行相應(yīng)的字符轉(zhuǎn)化操作并且返回轉(zhuǎn)化后的字符串IfmvarBiaozhi=NlogoitThendONE=StrReverse(myTXT)逆向排序ElseIfmvarBiaozhi=LcaseitThendONE=LCase(myTXT)強(qiáng)制小寫轉(zhuǎn)化ElsedONE=UCase(myTXT)強(qiáng)制大寫轉(zhuǎn)化EndIfEndFuncti
10、onDONE方法結(jié)束PublicPropertyLetBiaozhi(ByValvDataAssTYLE)獲得屬性的被賦的值mvarBiaozhi=vDataEndPropertyPublicPropertyGetBiaozhi()AssTYLE傳遞屬性值到類中SetBiaozhi=mvarBiaozhiEndPropertyPublicSubAttach(itTEXTAsTextBox)連接類的方法SetmyTXT=itTEXTEndSubPrivateSubClass_Initialize()本事件在類倍加載時(shí)激活MsgBox”你好!本程序向您展示使用類的方法、屬性、事件進(jìn)行編程的技術(shù)!E
11、ndSubPrivateSubClass_Terminate()本事件在類被卸載時(shí)激活MsgBox”你好!記得在Class_Terminate中填寫對(duì)象撤銷后的代碼!EndSub類的代碼全部結(jié)束(四) 窗體代碼的引用編程;在窗體FORM1中添加文本控件TEXT1、下拉列表控件COMBO1、命令按鈕COMMAND1(CAPTION=開(kāi)始轉(zhuǎn)化),調(diào)整三個(gè)控件到適當(dāng)位置。DimmyTAsNewClass1類的引用PrivateSubForm_Load()Combo1.ClearCombo1.AddItem”字符串大寫轉(zhuǎn)化Combo1.AddItem”字符串小寫轉(zhuǎn)化Combol.AddItem”字符串逆向排序Combol.ListIndex=0在列表框中添加屬性選項(xiàng)EndSubPrivateSubCommand1_Click()當(dāng)命令按鈕按下時(shí)激活類myT.AttachText1方法參數(shù)聯(lián)接SelectCaseCombo1.ListIndexCase0myT.Biaozhi=LbigitCase1myT.Biaozhi=LcaseitCase2myT.Biaozhi=NlogoitEndSelect根據(jù)列表框的選擇,給類的Biaozhi屬性賦值注意,在編程環(huán)境中,上述屬
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版電力設(shè)備供應(yīng)商設(shè)備采購(gòu)及安裝合同3篇
- 二零二五年度新型外墻涂料施工勞務(wù)分包質(zhì)量保證合同3篇
- 二零二五版VOC環(huán)保設(shè)施全生命周期運(yùn)維合同2篇
- 二零二五年股權(quán)投資退出與回購(gòu)條款合同范本3篇
- 二零二五版起重設(shè)備吊裝安全管理合同3篇
- 二零二五年杭州房產(chǎn)中介房屋租賃合同規(guī)范文本9篇
- 二零二五版?zhèn)}儲(chǔ)物流倉(cāng)儲(chǔ)場(chǎng)地租賃合同20篇
- 二零二五版智能電網(wǎng)500KVA箱變?cè)O(shè)備維護(hù)保養(yǎng)服務(wù)合同3篇
- 二零二五年接送機(jī)服務(wù)及行李寄存合同3篇
- 二零二五年度高端商務(wù)座椅定制與物流配送合同3篇
- 外呼合作協(xié)議
- 小學(xué)二年級(jí)100以內(nèi)進(jìn)退位加減法800道題
- 2025年1月普通高等學(xué)校招生全國(guó)統(tǒng)一考試適應(yīng)性測(cè)試(八省聯(lián)考)語(yǔ)文試題
- 《立式輥磨機(jī)用陶瓷金屬?gòu)?fù)合磨輥輥套及磨盤襯板》編制說(shuō)明
- 保險(xiǎn)公司2025年工作總結(jié)與2025年工作計(jì)劃
- 育肥牛購(gòu)銷合同范例
- 暨南大學(xué)珠海校區(qū)財(cái)務(wù)辦招考財(cái)務(wù)工作人員管理單位遴選500模擬題附帶答案詳解
- DB51-T 2944-2022 四川省社會(huì)組織建設(shè)治理規(guī)范
- 2024北京初三(上)期末英語(yǔ)匯編:材料作文
- 2023年輔導(dǎo)員職業(yè)技能大賽試題及答案
- 禮儀服務(wù)合同三篇
評(píng)論
0/150
提交評(píng)論