vb類模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別

vb類模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別

ID:18775277

大小:48.00 KB

頁數(shù):13頁

時間:2018-09-23

vb類模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別_第1頁
vb類模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別_第2頁
vb類模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別_第3頁
vb類模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別_第4頁
vb類模塊和標(biāo)準(zhǔn)模塊使用和區(qū)別_第5頁
資源描述:

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

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

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

3、中的代碼是全局的。Public?gstrVisibleEverywhere?As?StringPublic?Sub?CallableAnywhere(ByVal?c1?As?Class1)???'下行改變一個全局變量,這是一個Class1實例的(屬性)???'只有傳遞給該過程的個別對象才受到影????c1.Comment?=?"Touched?by?a?global?function."End?Sub把兩個命令按鈕放在?Form1?上,并在?Form1?中添加以下的代碼:Private?mc1First?As?Class1Private?

4、mc1Second?As?Class1Private?Sub?Form_Load()???'創(chuàng)建兩個?Class1?類的實例。???Set?mc1First?=?New?Class1???Set?mc1Second?=?New?Class1???gstrVisibleEverywhere?=?"Global?string?data"End?SubPrivate?Sub?Command1_Click()???Call?CallableAnywhere(mc1First)???mc1First.ShowCommentEnd?SubPrivat

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

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

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

8、ublic。???CommonString?=?gstrVisibleEverywhereEnd?Property注意:在類模塊中,對模塊級的變量不能聲明為Static,Static數(shù)據(jù)只能在

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

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

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