五分鐘學(xué)會(huì)VB.NET面向?qū)ο缶幊?/h1>
本人很喜歡VB.NET,在工作中也很喜歡總結(jié)關(guān)于VB.NET面向?qū)ο缶幊痰慕?jīng)驗(yàn)教訓(xùn),下面就這個(gè)問(wèn)題來(lái)詳細(xì)說(shuō)說(shuō)吧。新版的Visual Basic 7也就是Visual Basic.NET,具有了面向?qū)ο笳Z(yǔ)言的所有特征。即使以老VB程序員的角度看也對(duì)象的慨念并不完全是新的,但也要盡可能用面向?qū)ο蟮姆绞綄?xiě)代碼。
如果你問(wèn)一個(gè)面向?qū)ο蟪绦蛟O(shè)計(jì)高手什么是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言?那么你可能將聽(tīng)到幾個(gè)絕對(duì)少不了的單詞,比如:類(lèi)、接口、消息隱匿、封裝、繼承、多態(tài)等等。作為一個(gè)話題,面向?qū)ο笳Z(yǔ)言不是那種很簡(jiǎn)單只需要一兩天就能精通或者僅僅靠一次演講就能掌握的語(yǔ)言。要掌握面向?qū)ο蟪绦蛘Z(yǔ)言你需要作在掌握理論的同時(shí)還要做大量的練習(xí)。本文表述了在VB.NET中運(yùn)用面向?qū)ο笤砭幊痰幕痉椒?,本文沒(méi)有全面涉及VB.NET面向?qū)ο缶幊蹋疚膬H僅是一個(gè)開(kāi)始。
#t#VB.NET面向?qū)ο缶幊痰膬?yōu)點(diǎn)
你是否對(duì)現(xiàn)代程序設(shè)計(jì)語(yǔ)言如此傾向VB.NET面向?qū)ο缶幊谈械襟@訝?這有幾個(gè)原因,C++作為C的一個(gè)擴(kuò)展發(fā)展起來(lái)支持VB.NET面向?qū)ο缶幊碳夹g(shù),還有java這個(gè)星球上***的編程語(yǔ)言也是一種面向?qū)ο蟮木幊陶Z(yǔ)言,然后,的確如此,VB發(fā)展成VB.NET后,也成為一種完全的面向?qū)ο蟮木幊陶Z(yǔ)言。有幾個(gè)好的原因?qū)е铝诉@個(gè)轉(zhuǎn)變。VB.NET面向?qū)ο缶幊逃袔讉€(gè)優(yōu)點(diǎn),比如:易于進(jìn)行代碼維護(hù),可擴(kuò)展性好,代碼重用技術(shù)。這些優(yōu)點(diǎn)是過(guò)程編程所沒(méi)有的。下面就談?wù)劽嫦驅(qū)ο蠹夹g(shù)的這些優(yōu)點(diǎn):
易于維護(hù):在VB.NET面向?qū)ο缶幊讨心K性是與生俱來(lái)的,實(shí)體表現(xiàn)為類(lèi)和名字空間中具有相同功能的類(lèi),你可以向名字空間中增加一個(gè)類(lèi)卻不會(huì)影響名字空間的其他成員。
可擴(kuò)展性:VB.NET面向?qū)ο缶幊讨С謹(jǐn)U展性,如果你有一個(gè)有某種功能的類(lèi),你可以很快的擴(kuò)展這個(gè)類(lèi),創(chuàng)建另一個(gè)具有擴(kuò)展功能的類(lèi)。
代碼重用:自從功能被壓縮到一個(gè)類(lèi)中并且類(lèi)作為一個(gè)獨(dú)立的實(shí)體存在,提供一個(gè)類(lèi)庫(kù)就變得非常容易了,事實(shí)是任何一個(gè).NET Framework程序員都可以使用.NET Framework類(lèi)庫(kù),.NET Framework類(lèi)庫(kù)是一個(gè)有豐富類(lèi)的類(lèi)庫(kù),提供很強(qiáng)的功能,更可貴的是你可以很容易的擴(kuò)展這些功能來(lái)滿足你的需要。
現(xiàn)在我們看看VB.NET面向?qū)ο缶幊痰奶卣鞯氖褂?,首先從最?jiǎn)單的開(kāi)始。
在VB.NET面向?qū)ο缶幊碳夹g(shù)中類(lèi)是主要的焦點(diǎn),簡(jiǎn)單的說(shuō),類(lèi)是一種提供功能的數(shù)據(jù)類(lèi)型。在VB.NET中宣布一個(gè)類(lèi)要使用關(guān)鍵字class,比如,list1中就宣布了一個(gè)叫employee的類(lèi)。
- Listing 1:Employee類(lèi)
- Class Employee
- End Class
這是一個(gè)非常簡(jiǎn)單的類(lèi)。注意微軟推薦使用Pascal語(yǔ)言對(duì)類(lèi)的命名規(guī)則。這就意味著類(lèi)名的***個(gè)字母必須是大寫(xiě),并且后來(lái)的并發(fā)連結(jié)詞的第個(gè)字母均為大寫(xiě)。一個(gè)好的類(lèi)名應(yīng)該象這樣的GeneralManager, SmallDictionary, StringUtil。