VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc

VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc

ID:51255499

大小:38.50 KB

頁(yè)數(shù):13頁(yè)

時(shí)間:2020-03-20

VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc_第1頁(yè)
VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc_第2頁(yè)
VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc_第3頁(yè)
VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc_第4頁(yè)
VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc_第5頁(yè)
資源描述:

《VB類(lèi)模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、類(lèi)模塊和標(biāo)準(zhǔn)模塊類(lèi)模塊和標(biāo)準(zhǔn)模塊的不同點(diǎn)在于存儲(chǔ)數(shù)據(jù)方法的不同。標(biāo)準(zhǔn)模塊的數(shù)據(jù)只有一個(gè)備份。這意味著標(biāo)準(zhǔn)模塊中一個(gè)公共變量的值改變以后,在后面的程序中再讀取該變量時(shí),它將得到同一個(gè)值。而類(lèi)模塊的數(shù)據(jù),是相對(duì)于類(lèi)實(shí)例(也就是,由類(lèi)創(chuàng)建的每一對(duì)象)而獨(dú)立存在的。 同樣的,標(biāo)準(zhǔn)模塊中的數(shù)據(jù)在程序作用域內(nèi)存在,也就是說(shuō),它存在于程序的存活期中;而類(lèi)實(shí)例中的數(shù)據(jù)只存在于對(duì)象的存活期,它隨對(duì)象的創(chuàng)建而創(chuàng)建,隨對(duì)象的撤消而消失。 最后,當(dāng)變量在標(biāo)準(zhǔn)模塊中聲明為Public時(shí),則它在工程中任何地方都是可見(jiàn)的;而類(lèi)模塊中的Public變量,只有當(dāng)對(duì)象變量含有對(duì)某一

2、類(lèi)實(shí)例的引用時(shí)才能訪問(wèn)。 上面的比較,同樣適用于標(biāo)準(zhǔn)模塊和類(lèi)模塊中的公共過(guò)程,用下面的例子可以說(shuō)明。新建一個(gè)工程,并在“工程”菜單中個(gè)添加一個(gè)標(biāo)準(zhǔn)模塊和一個(gè)類(lèi)模塊,然后運(yùn)行以下的代碼: 把下面的代碼放在?Class1?中: '下面是?Class1?對(duì)象的一個(gè)屬性。 Public?Comment?As?String '下面是?Class1?對(duì)象的一個(gè)方法。 Public?Sub?ShowComment() ???MsgBox?Comment,?,?gstrVisibleEverywhere End?Sub 把下面的代碼放在?Module1?中:

3、'標(biāo)準(zhǔn)模塊中的代碼是全局的。 Public?gstrVisibleEverywhere?As?String Public?Sub?CallableAnywhere(ByVal?c1?As?Class1) ???'下行改變一個(gè)全局變量,這是一個(gè)Class1實(shí)例的(屬性) ???'只有傳遞給該過(guò)程的個(gè)別對(duì)象才受到影 ????c1.Comment?=?"Touched?by?a?global?function." End?Sub 把兩個(gè)命令按鈕放在?Form1?上,并在?Form1?中添加以下的代碼: Private?mc1First?As?Class

4、1 Private?mc1Second?As?Class1 Private?Sub?Form_Load() ???'創(chuàng)建兩個(gè)?Class1?類(lèi)的實(shí)例。 ???Set?mc1First?=?New?Class1 ???Set?mc1Second?=?New?Class1 ???gstrVisibleEverywhere?=?"Global?string?data" End?Sub Private?Sub?Command1_Click() ???Call?CallableAnywhere(mc1First) ???mc1First.ShowComme

5、nt End?Sub Private?Sub?Command2_Click() ???mc1Second.ShowComment End?Sub 按F5鍵,運(yùn)行該工程。當(dāng)Form1加載時(shí),它創(chuàng)建兩個(gè)Class1類(lèi)實(shí)例,每個(gè)實(shí)例有自己的數(shù)據(jù)。同時(shí),F(xiàn)orm1設(shè)置了下面全局變量gstrVisibleEverywhere的值。 按下Command1,調(diào)用全局過(guò)程并傳遞引用給第一個(gè)Class1對(duì)象。全局過(guò)程設(shè)置Comment屬性,然后Command1調(diào)用ShowComment方法顯示該對(duì)象的數(shù)據(jù)。 正如圖1所示,結(jié)果信息框演示了全局過(guò)程CallableA

6、nywhere如何設(shè)置對(duì)象的Comment屬性,而且全局字符串在Class1內(nèi)部是可見(jiàn)的。 圖1第一個(gè)Class1對(duì)象的信息框 按下Command2,調(diào)用第二個(gè)Class1類(lèi)實(shí)例的ShowComment方法。 如圖?9.7?所示,兩個(gè)對(duì)象都訪問(wèn)了全局字符串變量;然而,第二個(gè)對(duì)象的Comment屬性是空的,因?yàn)閷?duì)全局過(guò)程CallableAnywhere的調(diào)用只改變第一個(gè)對(duì)象的Comment屬性。 圖2第二個(gè)Class1對(duì)象的信息框 重點(diǎn):要避免類(lèi)的代碼依賴(lài)于全局變量,也就是標(biāo)準(zhǔn)模塊中的公共變量。一個(gè)類(lèi)的許多實(shí)例可以同時(shí)存在,所有這些對(duì)象在程序中

7、共享全局?jǐn)?shù)據(jù)。 在類(lèi)模塊代碼中使用全局變量也違背了面向?qū)ο蠓庋b的編程原則,因?yàn)橛蛇@樣的類(lèi)所創(chuàng)建的對(duì)象并沒(méi)有包含它們的所有數(shù)據(jù)。 靜態(tài)類(lèi)數(shù)據(jù) 有時(shí),希望由一個(gè)類(lèi)模塊所創(chuàng)建的一些對(duì)象共享某個(gè)數(shù)據(jù)項(xiàng)。這就是所謂的靜態(tài)類(lèi)數(shù)據(jù)。 不能在VisualBasic類(lèi)模塊中實(shí)現(xiàn)真正的靜態(tài)類(lèi)數(shù)據(jù)。但是,通過(guò)使用Property過(guò)程在標(biāo)準(zhǔn)模塊中設(shè)置及返回Public數(shù)據(jù)成員的值,可以仿真靜態(tài)類(lèi)數(shù)據(jù),如以下的代碼: '只讀屬性返回應(yīng)用程序的名字。 Property?Get?CommonString()?As?String ???'變量?gstrVisibleEvery

8、where?保存在 ???'標(biāo)準(zhǔn)模塊中,并聲明為?Public。 ???CommonString?=?gstrVisibleEveryw

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。