講解VB.NET語(yǔ)言學(xué)習(xí)經(jīng)驗(yàn)
在向大家詳細(xì)介紹VB.NET語(yǔ)言之前,首先讓大家了解下VB.NET采納了包括Java在內(nèi)的許多其它面相對(duì)象編程語(yǔ)言的功能和特點(diǎn),然后全面介紹VB.NET語(yǔ)言。
我使用VB.NET的時(shí)間越長(zhǎng),我就越是欣賞VB.NET語(yǔ)言和結(jié)構(gòu)。作為一名VB程序員,得知這個(gè)消息——我寫(xiě)Java和J2EE程序的經(jīng)驗(yàn)在轉(zhuǎn)換到.NET的過(guò)程中是非常有用的——后,我非常高興。這兩個(gè)語(yǔ)言越成熟,它們也就越相似。盡管Java實(shí)際上是一種面向?qū)ο缶幊蹋╫bject-oriented programming,OOP)語(yǔ)言,它的許多設(shè)計(jì)還是受到了C++和Smalltalk的影響。
VB.NET采納了包括Java在內(nèi)的許多其它面相對(duì)象編程語(yǔ)言的功能和特點(diǎn):VB.NET把基本數(shù)據(jù)類(lèi)型(字符串、整型、雙精度等等)轉(zhuǎn)換成帶有屬性和方法的對(duì)象;它還引入了Java類(lèi)型的錯(cuò)誤捕獲機(jī)制(用Try和 Catch);VB.NET還把代碼編譯成微軟中間語(yǔ)言(Microsoft Intermediate Language,IL);它還提供了基于XML的應(yīng)用程序配置。更重要的是設(shè)計(jì)面向?qū)ο蠼鉀Q方案的能力可以用任何語(yǔ)言實(shí)現(xiàn)。在本文中,我將比較 VB.NET語(yǔ)言和Java;不過(guò)與其它面相對(duì)象編程語(yǔ)言來(lái)說(shuō),VB.NET現(xiàn)在本質(zhì)上在走它自己的路。
另一方面,Sun公司最近宣布它將在2003年夏季推出一種.NET風(fēng)格的開(kāi)發(fā)環(huán)境。這個(gè)新環(huán)境是否會(huì)讓Java成為主流,我們只能拭目以待。Java所欠缺的一個(gè)優(yōu)點(diǎn)就是友好的用戶界面,程序員在用Java寫(xiě)應(yīng)用程序之前往往不得不花上更多的時(shí)間來(lái)學(xué)會(huì)Java編程和面相對(duì)象編程的基本知識(shí)。用VB,開(kāi)發(fā)者可以用他們所希望的任何方法(常常是錯(cuò)誤的方法)來(lái)寫(xiě)程序,這樣,在維護(hù)程序時(shí),這成了一個(gè)大問(wèn)題。在Sun的新的Java IDE(集成開(kāi)發(fā)環(huán)境)在這個(gè)夏天出現(xiàn)之前,Sun公司應(yīng)該向Java編程新手介紹幾個(gè)基本指南,讓他們體會(huì)到OOP設(shè)計(jì)的重要性。
OOP語(yǔ)法是獨(dú)立的嗎?
在VB中,如同在Java中那樣,任何東西都是對(duì)象——字符、整型以及它所以包括的其它基本類(lèi)型。VB.NET語(yǔ)言的早先版本包括了一些內(nèi)建函數(shù)來(lái)處理字符串;字符串或者整型沒(méi)有屬性和方法?,F(xiàn)在,在VB中,字符串和Java中的字符串幾乎是相同的。諸如字符串和雙精度這項(xiàng)基本類(lèi)型的相同是確實(shí)的。在Java中,int和double(基本類(lèi)型)依然存在,但在VB.NET中,它們成功的被各自的對(duì)象所取代。
把字符串和數(shù)字轉(zhuǎn)換成對(duì)象可以讓代碼更清晰、更少依賴(lài)編程語(yǔ)言本身。我們給出一個(gè)例子,為了從一個(gè)字符串中找到一個(gè)字符,用早先版本的VB,程序員可能會(huì)這么寫(xiě):
- sMyString = Mid(sMyString,3,4)
現(xiàn)在,它可以被替換為:
- sMyStringsMyString = sMyString.substring(3,4)
VB命令現(xiàn)在依然得到了保留,如果轉(zhuǎn)換時(shí)出現(xiàn)問(wèn)題,它們還可以使用;但是在上面例子中的第二部分,用VB、Java或是C#實(shí)現(xiàn),其語(yǔ)法是相同的。以我的經(jīng)驗(yàn),VB程序員拋棄老VB.NET語(yǔ)言采用“新的”面向?qū)ο缶幊碳夹g(shù)幾乎不會(huì)出現(xiàn)問(wèn)題。
事件句柄(event handlers)是VB.NET所提供的另一個(gè)強(qiáng)大補(bǔ)充,它的功能也可以與Java相提并論。(事件句柄在Java中也成為“監(jiān)聽(tīng)者(listerer)”。)利用事件句柄,程序員可以給對(duì)象分配默認(rèn)方法。例如,VB.NET開(kāi)發(fā)者可以給Datagrid添加一個(gè)句柄來(lái)處理數(shù)據(jù)的改變。事件句柄的工作方式與前兩版VB中的回叫函數(shù)(callback function)相似。
【編輯推薦】