《易飛揚(yáng)面向?qū)ο缶幊獭返?版_第1頁(yè)
《易飛揚(yáng)面向?qū)ο缶幊獭返?版_第2頁(yè)
《易飛揚(yáng)面向?qū)ο缶幊獭返?版_第3頁(yè)
《易飛揚(yáng)面向?qū)ο缶幊獭返?版_第4頁(yè)
《易飛揚(yáng)面向?qū)ο缶幊獭返?版_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《易飛揚(yáng)面向?qū)ο缶幊獭访磕旯局苣陸c我都會(huì)有個(gè)小小的禮物給大家的,今年也不例外,教材是最好的禮物了,本文簡(jiǎn)單介紹了“易語(yǔ)言?飛揚(yáng)”系統(tǒng)的面向?qū)ο缶幊谭椒?,易飛揚(yáng)還在緊張地開(kāi)發(fā)之中,愿大家與易飛揚(yáng)一起成長(zhǎng)?!耙渍Z(yǔ)言.飛揚(yáng)"官方網(wǎng)站:“易語(yǔ)言?飛揚(yáng)”官方論壇:/vbs/index.asp?boardid=148《“易?自?然”編程思想》地址:/vbs/dispbbs.asp?boardID=148&ID=100873&page=1“易語(yǔ)言.飛揚(yáng)”集成編譯環(huán)境(大眾版):/vbs/dispbbs.asp?boardID=148&ID=100588&page=1TOC\o"1-5"\h\z\o"CurrentDocument"《易飛揚(yáng)面向?qū)ο缶幊獭?1\o"CurrentDocument"分類 2\o"CurrentDocument"啟動(dòng) 3\o"CurrentDocument"公開(kāi) 4\o"CurrentDocument"私有 4\o"CurrentDocument"靜態(tài) 4\o"CurrentDocument"非靜 6\o"CurrentDocument"對(duì)象 7\o"CurrentDocument"成員 8\o"CurrentDocument"初始 9\o"CurrentDocument"清理 10\o"CurrentDocument"屬性 10\o"CurrentDocument"事件 11\o"CurrentDocument"創(chuàng)建 13\o"CurrentDocument"銷毀 13\o"CurrentDocument"重載 13\o"CurrentDocument"封裝 15\o"CurrentDocument"繼承 15\o"CurrentDocument"多態(tài) 16\o"CurrentDocument"接口 17\o"CurrentDocument"總結(jié) 19由于“易語(yǔ)言?飛揚(yáng)”還未完全成型,在此過(guò)程中如果有所改動(dòng),教材也會(huì)相應(yīng)的改動(dòng),但是對(duì)于面向?qū)ο蟮木幊虂?lái)說(shuō),基本上是不會(huì)變的,因此本書作者才有信心將面向?qū)ο蟮木幊谭椒▽懗鰜?lái)。之所以本書的名稱中有“編程思想”一樣,我們不是為了編程而去編程,那種整天加班,一天到晚累得半死的生活并不是我們這些程序員理想中的生活,對(duì)于工作與生活的態(tài)度,也影響到我們編程中去,如何仿照自然的方法去編程,去生活同樣具有重要的意義。那么什么是“對(duì)象”呢?這個(gè)問(wèn)題一直困擾著很多編程的入門者,有說(shuō)對(duì)象就是組件,有說(shuō)對(duì)象就是類的實(shí)體化,雖然我不反對(duì)用這些術(shù)語(yǔ),但我反對(duì)讓初學(xué)者搞不明白,實(shí)際上,“對(duì)象”就是你的一個(gè)好朋友,這個(gè)好朋友的功能強(qiáng)大,能夠幫助你完成你所設(shè)計(jì)的事情,那么,下面我們就介紹一直在你身邊的這個(gè)好朋友吧。分類物以類聚,人以群分,朋友也是這樣,如果你交個(gè)好朋友,那么就會(huì)受益無(wú)窮,如果你交了個(gè)損友,那么后果不難想象,所謂近墨者黑,近朱者赤,君子之交淡如水,也就是說(shuō)交一些具有平常心的朋友,不會(huì)讓你去冒險(xiǎn),不會(huì)讓你心煩意亂。好了,想法是好的,那么就會(huì)去找,如果真的找到了,那么就恭喜你,如果找不到,也不必傷心。那么我們理想中的好朋友就是對(duì)象,而真實(shí)的好朋友就是對(duì)象的實(shí)體,我們把他們分為一類人“好朋友”,還有就是“普通朋友”、“同事”、“老師”、“陌生人”等。通過(guò)以上,可以了解到面向?qū)ο缶幊讨小邦悺迸c“對(duì)象”的關(guān)系?!邦悺毕喈?dāng)于“好朋友”、“普通朋友”、“同事”、“老師”、“陌生人”等這些思想的劃分,而具體的某個(gè)人就是類的“實(shí)際對(duì)象”。理想中的好朋友具有相關(guān)的特性,比如有身高,年紀(jì),性格等信息,也可以在人生的道路上幫助你成長(zhǎng)。在面向?qū)ο笾?,把“相關(guān)特性”稱為“數(shù)據(jù)成員”,雖然聽(tīng)起來(lái)很奇怪,但大家只要了解到,與老易語(yǔ)言中的屬性是差不多的。在面向?qū)ο笾?,把“功能”稱為“方法”,雖然聽(tīng)起來(lái)很奇怪,但大家只要了解到,與老易語(yǔ)言中的方法命令是差不多的。下面就來(lái)看第一個(gè)易飛揚(yáng)類的代碼吧。公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)(){文本輸出的文本「易語(yǔ)言,你好!,控制臺(tái)?輸岀行(輸岀的文本);上述代碼中,控制臺(tái)就是一個(gè)對(duì)象,也是你的好朋友,他具有“輸出行”這樣的方法命令,后面所接就是他的參數(shù):“輸出的文本”。而“輸出的文本”是在上一行中進(jìn)行了定義的,是一個(gè)文本變量,并且內(nèi)容是“易語(yǔ)言,你好!”,這樣一想,這個(gè)具體的好朋友還沒(méi)有分類呢,于是將這個(gè)好朋友分為“啟動(dòng)類”這個(gè)行為作為“啟動(dòng)類”的一個(gè)“啟動(dòng)”方法去執(zhí)行。啟動(dòng)上面已經(jīng)說(shuō)過(guò)了,在上述這段代碼中,有一個(gè)類一一“啟動(dòng)類”這是我們對(duì)好朋友的劃分,在該類中有一個(gè)方法一一“啟動(dòng)”方法,這是好朋友能做的事情?;ɡㄌ?hào)里面的代碼就是事情的具體步驟。好了,上述代碼是可以執(zhí)行的,大家還記得如何運(yùn)行嗎?不會(huì)的請(qǐng)看本書第一章節(jié)中的內(nèi)容。在易飛揚(yáng)中,程序的運(yùn)行要依賴一個(gè)很重要的類一一它的類名為“啟動(dòng)類”在“啟動(dòng)類”的下面有一個(gè)必有的方法一一“啟動(dòng)”方法,用法如其名,該方法是易飛揚(yáng)程序的入口,也就是說(shuō),易飛揚(yáng)的程序要從這個(gè)方法下面的代碼進(jìn)行運(yùn)行。大家可以把這個(gè)“啟動(dòng)”方法看成是老易語(yǔ)言中的“_啟動(dòng)子程序”子程序。這樣大家就可以很容易的看懂上面的代碼了。注意了,“啟動(dòng)類”必須是“公開(kāi)”的;而“啟動(dòng)”方法必須是“公開(kāi)”且“靜態(tài)”屬性。大家先不要管什么是“公開(kāi)”“靜態(tài)”只要記下來(lái)就好了,繼續(xù)看下面的文字吧。在“啟動(dòng)”方法中的代碼,相信大家也能理解到了,是用控制臺(tái)輸出一行文字,文字的內(nèi)容是“易語(yǔ)言,你好!”不管如何,大家跟我學(xué)編程,我是不會(huì)虧待大家的,給大家一個(gè)小詩(shī)來(lái)說(shuō)明我的歸納結(jié)果,大家有空就將這個(gè)口訣背下來(lái)哦,當(dāng)出現(xiàn)對(duì)好朋友不理解時(shí),只要背一下這個(gè)小詩(shī),就基本上能解決問(wèn)題了??谠E一:面向?qū)ο罂糠诸?聲明類有屬性表。公開(kāi)大家都能用;私有隱藏保安全。內(nèi)部靜態(tài)調(diào)靜態(tài);外部類名加成員。非靜創(chuàng)建類對(duì)象;對(duì)象名加類成員。面向?qū)ο罂糠诸悾唬嫦驅(qū)ο笾杏深惤M成基本單位,一個(gè)類中有多個(gè)方法)聲明類法有屬性。(類有類的屬性表,方法有方法的屬性表)內(nèi)部靜態(tài)調(diào)靜態(tài);(在內(nèi)部(類中)靜態(tài)成員只能被靜態(tài)成員所調(diào)用;)外部類名加成員。(而在外部(類外),只能通過(guò)“類名?”加成員名的方法進(jìn)行調(diào)用。)非靜創(chuàng)建類對(duì)象;(“非靜態(tài)”成員的使用方法是:用類生成的“對(duì)象名”+“?”+類成員)對(duì)象名加類成員。(同上)公開(kāi)大家都能用;(具有公開(kāi)屬性的類或方法,在其他的類或方法中可以直接調(diào)用,“公開(kāi)”就是可被調(diào)用,其方法的引用就是類名+方法名即可。)私有隱藏保安全。(私有屬性只是為了安全考慮,不向其他程序員公開(kāi),因此使用時(shí)只能在類的內(nèi)部使用)難免本文還是要先來(lái)說(shuō)明一下這些類或類成員名稱前面的這些名詞是做什么用的。公開(kāi)面向?qū)ο罂糠诸?聲明類有屬性表。公開(kāi)大家都能用;私有隱藏保安全。私有了解“公開(kāi)”與“私有”哈哈,現(xiàn)在的人都是說(shuō)自己有人權(quán)保護(hù)的,因?yàn)槊總€(gè)人都有自己的隱私,你的好朋友也不例外,當(dāng)你的好朋友出現(xiàn)在你面前時(shí),他公開(kāi)了他的形象和語(yǔ)言,以及行為,但他回家后,是自己會(huì)吃飯、睡覺(jué)等,這些是不會(huì)公開(kāi)給你看的哦。這樣的好處是,你的好朋友不會(huì)隨時(shí)公開(kāi)他的行為,他就具有自主性,自動(dòng)性,對(duì)他也是個(gè)保持哦。在面象對(duì)象中也是這樣,當(dāng)公開(kāi)時(shí),其他人都是可視的可調(diào)用的,但也設(shè)置一個(gè)“私有”屬性,對(duì)這個(gè)類進(jìn)行保護(hù),保護(hù)的重要意義在于,這些都是內(nèi)部的工作,自動(dòng)完成的,不需要其他人為的干涉,否則就是干涉內(nèi)政,或干涉別人的隱私羅。無(wú)論類、還是類中方法與屬性,都可以設(shè)定它對(duì)外部是否可見(jiàn),這個(gè)“可見(jiàn)”便是在被外部應(yīng)用時(shí)是否可被調(diào)用?!肮_(kāi)”就是可被調(diào)用,而“私有”則不能。私有是面向?qū)ο笾械囊粋€(gè)重要工具,用于保護(hù)一些不想被外部調(diào)用的功能實(shí)現(xiàn),保證安全性。靜態(tài)內(nèi)部靜態(tài)調(diào)靜態(tài);外部類名加成員。非靜創(chuàng)建類對(duì)象;對(duì)象名加類成員。了解“靜態(tài)”與“非靜態(tài)”你的好朋友可有不同的類型哦,有的是好靜,喜歡聽(tīng)你的訴說(shuō),有的好動(dòng),自己就滔滔不絕,讓人發(fā)笑,一般人都是喜歡安靜,靜勝燥,柔勝鋼,陰盛陽(yáng)衰,我也說(shuō)多了,哈哈。方法具有“靜態(tài)”屬性,如果沒(méi)有這個(gè)屬性就說(shuō)明是“非靜態(tài)”的方法。“靜態(tài)”從字面上是很難理解的,在我看來(lái),只是給方法加上了一些限制而已。在內(nèi)部(類中)靜態(tài)成員只能被靜態(tài)成員所調(diào)用;而在外部(類外)只能通過(guò)“類名?”加成員名的方法進(jìn)行調(diào)用。在外部調(diào)用靜態(tài)方法時(shí),也可以把它看作老易語(yǔ)言中的“子程序”,這樣大家可能會(huì)更好的理解它。好,給大家一個(gè)例程,以說(shuō)明靜態(tài)的調(diào)用方法是與老易語(yǔ)言中的一樣的。下面是一個(gè)“好朋友”的類,其中明兩個(gè)方法命令:“說(shuō)話”和“行走”,代碼如下:公開(kāi)類好朋友{公開(kāi)靜態(tài)說(shuō)話(){控制臺(tái)■輸岀行L在說(shuō)話}公開(kāi)靜態(tài)行走(){控制臺(tái)■輸岀行L在行走調(diào)用程序代碼如下:公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)0{好朋友■說(shuō)話();好朋友■行走0;運(yùn)行結(jié)果如下圖所示:可以看到以上的靜態(tài)方法的調(diào)用,都與原老易語(yǔ)言的“子程序”或組件的調(diào)用方法是差不多的。當(dāng)然了,當(dāng)一個(gè)方法公開(kāi)時(shí),在其他類中是可以調(diào)用的,如果一個(gè)方法是私有的,那么在其他類中就不可調(diào)用。如將上述“說(shuō)話”或“行走”改為私有屬性,那么在“啟動(dòng)”方法中就不能調(diào)用了。非靜“非靜態(tài)”成員的使用方法的關(guān)鍵在于先用“對(duì)象”創(chuàng)建后再使用創(chuàng)建的對(duì)象調(diào)用。將上述的做一個(gè)反例來(lái)用,例如:將上述代碼中的“說(shuō)話”和“行走”方法命令中的靜態(tài)屬性去掉,就不能通過(guò)編譯,代碼如下:公開(kāi)類好朋友{公開(kāi)說(shuō)話(){控制臺(tái)■輸出行L在說(shuō)話}公開(kāi)行走(){控制臺(tái)■輸出行L在行走如果我們改為以下的調(diào)用方式,就又可以進(jìn)行正常的編譯運(yùn)行了:公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)0{好朋友張三二創(chuàng)建好朋友;張三.說(shuō)話();張三?行走();上述代碼中,用好朋友這個(gè)類,生成了一個(gè)新的對(duì)象“張三”由于張三已成為好朋友的一個(gè)具體的對(duì)象,因此使用此對(duì)象調(diào)用這個(gè)類中的方法命令“說(shuō)話”和“行走”。而大家在實(shí)際編程中,可以將方法命令換成你想要操作的其他功能,如建立菜單,打開(kāi)窗口,處理數(shù)據(jù)等,也就實(shí)現(xiàn)了你的面向?qū)ο蟮某绦蛄??!胺庆o態(tài)”成員的使用方法是:用類生成的“對(duì)象名”+“?”+類成員其中“類成員”可以是非靜態(tài)的數(shù)據(jù)和非靜態(tài)的方法命令。對(duì)象下面大家可能會(huì)產(chǎn)生個(gè)疑問(wèn),一是在類的內(nèi)部調(diào)用非靜態(tài)方法命令時(shí),是否也需要先聲明一個(gè)對(duì)象呢?解決疑問(wèn)的方法是自己動(dòng)手,寫幾個(gè)不同的例子,用易飛揚(yáng)編譯后來(lái)驗(yàn)證一下。下面進(jìn)行例子的比較。先來(lái)研究一下:在類的內(nèi)部調(diào)用非靜態(tài)方法命令時(shí),是否也需要先聲明一個(gè)對(duì)象呢?回答是:也是必須要先創(chuàng)建一個(gè)對(duì)象才能使用。通過(guò)的代碼如下所示:公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)0{好朋友■調(diào)用();公開(kāi)類好朋友{公開(kāi)靜態(tài)調(diào)用0{好朋友趙強(qiáng)二創(chuàng)建好朋友;趙毎說(shuō)話();}公開(kāi)說(shuō)話(){控制臺(tái)■輸出行L在說(shuō)話}公開(kāi)行走(){控制臺(tái)?輸出行L在行走上述代碼中,可以看到,在好朋友的類中,定義了一個(gè)“調(diào)用”的方法,此方法中又創(chuàng)建了一個(gè)叫趙強(qiáng)的對(duì)象實(shí)體,由這個(gè)對(duì)象實(shí)體調(diào)用好朋友類的“說(shuō)話”非靜態(tài)方法。如何看待這種現(xiàn)象呢?可以將靜態(tài)方法看作是此類的外部工具,表現(xiàn)形式如下:

公開(kāi)類好朋友{公開(kāi)說(shuō)話(){控制臺(tái)■輸岀行L在說(shuō)話}公開(kāi)行走(){控制臺(tái)■輸岀行L在行走}}公開(kāi)靜態(tài)調(diào)用0{好朋友趙強(qiáng)=創(chuàng)建好朋友;趙毎說(shuō)話();}這樣大家就易于理解為何可以在類的內(nèi)部再創(chuàng)建他自己本身了。也就表明靜態(tài)類實(shí)際上與類本身是無(wú)關(guān)的,而非靜態(tài)類是依賴于類本身的。成員對(duì)于類的數(shù)據(jù)成員的理解,其實(shí)也是很簡(jiǎn)單的,我們只要把它看成是對(duì)象的“屬性”就可以了。這個(gè)屬性,就像是“好朋友”的姓名,衣服顏色一樣的特征。在“易語(yǔ)言用戶”類的開(kāi)頭,聲明了一個(gè)“公開(kāi)”的文本數(shù)據(jù)成員“姓名”用于保存易語(yǔ)言用戶的姓名。在“易語(yǔ)言用戶”類的方法成員中調(diào)用了該數(shù)據(jù)成員的值,并利用控制臺(tái)輸出,這樣就可以在有很多客戶的情況下,區(qū)分我們正在與哪個(gè)用戶進(jìn)行交流。調(diào)用的代碼:公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)0{易語(yǔ)言用戶李文二創(chuàng)建易語(yǔ)言用戶;易語(yǔ)言用戶張劍二創(chuàng)建易語(yǔ)言用戶;李文■小名二"小李J張劍?小名="小張,李文?說(shuō)話();弓荒劍■行走();好朋友?調(diào)用0;

公開(kāi)類好朋友公開(kāi)文本小名;公開(kāi)說(shuō)話(){控制臺(tái)■輸出行(小名+"在說(shuō)話。;}公開(kāi)行走(){控制臺(tái)■輸出行(小名+"在行走運(yùn)行的結(jié)果如下:在“啟動(dòng)”方法中,聲明創(chuàng)建了兩個(gè)“易語(yǔ)言用戶”類對(duì)象,“李文”、“張劍”,并分別給這兩個(gè)對(duì)象的“小名”屬性賦了值。如何區(qū)分是哪位用戶有動(dòng)作呢,就要通過(guò)用記的“小名”進(jìn)行區(qū)分了。通過(guò)以上的簡(jiǎn)單講解,相信大家對(duì)面向?qū)ο笥袀€(gè)入門的了解,然后大家可以將上述代碼中無(wú)用的控制臺(tái)命令換成有用的程序代碼,就可以實(shí)現(xiàn)面向?qū)ο蟮木幊塘?。?dāng)然,繼續(xù)了解了下的事物對(duì)編程更加有用。初始實(shí)際上“初始化”是一個(gè)特殊的類方法命令,類似于老易語(yǔ)言的、初始化”子程序,希望你對(duì)老易語(yǔ)言中的面向?qū)ο笥兴私?。也就是說(shuō):當(dāng)一個(gè)類的對(duì)象被創(chuàng)建時(shí),“初始化”方法被自動(dòng)調(diào)用;這個(gè)初始化方法可以不寫,如果寫了就會(huì)被首先執(zhí)行,一般來(lái)說(shuō),這是用于對(duì)類的創(chuàng)建時(shí)的預(yù)置環(huán)境用的,相當(dāng)于一個(gè)配置工具。我們用易語(yǔ)言不是也要配置一些東西,自己習(xí)慣的東西嗎,致于您要配置什么,就根據(jù)需要寫什么吧。我們選朋友時(shí)也是這樣,需要一定的標(biāo)準(zhǔn),適合的朋友才選擇,不適合的朋友就選離,所謂“君子務(wù)本,本立而道生?!薄俺跏蓟北仨毷欠恰办o態(tài)”的、非“私有”的、無(wú)返回值的類成員方法,可以沒(méi)有參數(shù)或有多個(gè)參數(shù),允許被重載。“靜態(tài)初始化”方法必須是“公開(kāi)”的、“靜態(tài)”的、無(wú)返回值且無(wú)參數(shù)的類成員方法。以上所有方法均可以被省略,如果被省略,易語(yǔ)言編譯器會(huì)自動(dòng)生成其默認(rèn)實(shí)現(xiàn)。也就是默認(rèn)有一個(gè)空的初始化方法存在,任務(wù)是什么也不做。編譯器在編譯具有基類的類的任一初始化方法之前,如果發(fā)現(xiàn)該初始化方法中不存在“調(diào)用其基類初始化方法的語(yǔ)句”將自動(dòng)在首部插入一條調(diào)用其基類默認(rèn)初始化方法(即無(wú)參數(shù)的初始化方法)的語(yǔ)句,以確?;惖某跏蓟椒ū徽{(diào)用。清理實(shí)際上“清理”是一個(gè)特殊的類方法命令,類似于老易語(yǔ)言中的、銷毀”子程序。也就是在類結(jié)結(jié)果束前進(jìn)行一些清理的工作。比較安慰的是,易飛揚(yáng)具有內(nèi)存自動(dòng)清潔功能,否則在這一步將要大家花費(fèi)大量的時(shí)間進(jìn)行內(nèi)容的清理工作。如果大家不寫這個(gè)類方法,默認(rèn)是自動(dòng)產(chǎn)生一個(gè)空的清理方法,當(dāng)然是什么也不做啦。不過(guò)中國(guó)人交朋友都是有始有終的,也稱之為善始善終。既然有出生、相遇……,就有分別、死亡……,這是萬(wàn)世不滅的道理?!扒謇怼北仨毷恰肮_(kāi)”的、非“靜態(tài)”的、無(wú)返回值且無(wú)參數(shù)的類成員方法。系統(tǒng)在調(diào)用類的“清理”方法之后,總是會(huì)調(diào)用其基類的“清理”方法。這是一個(gè)遞歸過(guò)程,最終的結(jié)果是,該類的最基礎(chǔ)類(系統(tǒng)?對(duì)象)的“清理”方法被最后調(diào)用。屬性在成員中實(shí)際上已講了一些屬性的概念,那是成員屬性,相當(dāng)于老易語(yǔ)言中組件的屬性。在此還要講的是“屬性方法”在易語(yǔ)言的使用中,大家一定是非常羨慕組件中的屬性不僅可以賦值,還可以讀取吧,現(xiàn)在你也可以了。下面給出一個(gè)例子:公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)(){易語(yǔ)言用戶李文二創(chuàng)建易語(yǔ)言用戶:李文.年齡二34;"對(duì)屬性賦值控制臺(tái)■輸出行(李文■年齡);"讀取屬性的值公開(kāi)類易語(yǔ)言用戶{整數(shù)年齡值;"私有成員,用于存儲(chǔ)屬性值公開(kāi)屬性整數(shù)年齡(){返回年齡值;}公開(kāi)屬性年齡(整數(shù)值){年齡值二值;在上述代碼中,“易語(yǔ)言用戶”類設(shè)置了一個(gè)“年齡”屬性方法,用于返回屬性值,第二個(gè)帶有整數(shù)參數(shù)的“年齡”屬性方法,用于接受屬性的賦值。啟動(dòng)類中,讀取屬性的值,實(shí)質(zhì)上是調(diào)用屬性讀取方法;對(duì)屬性賦值,實(shí)質(zhì)上是調(diào)用屬性設(shè)置方法。怎么樣,你也可以制作屬性了吧。事件大家還記得在老版易語(yǔ)言中,那個(gè)按鈕被單擊事件,按鈕被雙擊事件……嗎?這是大家很羨慕的一件事吧,您可能一直在想,怎么我做不了這種事件呢?從我的角度來(lái)看,這個(gè)就是一個(gè)特殊的方法,這個(gè)方法有特別的規(guī)定??纯聪旅嬉粋€(gè)事件子程序的代碼:公開(kāi)事件處理邏輯按鈕被單擊(被單擊事件事件){// 返回假;上述代碼中,大家可以看到,在聲明的部分,只是比普通的方法多了“事件接收”字樣,在后面的參數(shù)中“被單擊事件”去除事件兩個(gè)字后,“—被單擊”拿到了前面與組件相接,形成事件名稱。在老版易語(yǔ)言中也是規(guī)定好的“—按鈕—被單擊”

事件是固定不變的,如果變了就不起作用了,在這里也是這樣的,如果不按規(guī)定寫,就不會(huì)與事件的產(chǎn)生起作用了。換句話說(shuō),對(duì)組件的事件處理是通過(guò)匹配這些文本后進(jìn)行相應(yīng)的處理的。有個(gè)例子是說(shuō)明了這個(gè)問(wèn)題的。就是帶窗口的計(jì)算器的例子,這個(gè)例子對(duì)每個(gè)按鈕被按下的事件進(jìn)行了處理。公開(kāi)事件處理邏輯數(shù)字按鈕—按鈕被單擊(按鈕被單擊事件)計(jì)算—編輯框-添加文本("O");返回隨);公開(kāi)事件處理邏輯數(shù)字按鈕—按鈕被單擊(按鈕被單擊事件)計(jì)算—編輯框-添加文本("i");返回(真);公開(kāi)事件處理邏輯數(shù)字—「按鈕—按鈕被單擊(按鈕被單擊事件)計(jì)算—編輯框.添加文本("2");返回(真);公開(kāi)事件處理邏輯數(shù)字按鈕—按鈕被單擊(按鈕被單擊事件)計(jì)算—編輯框.添加文本("3");返回(真);公開(kāi)事件處理邏輯數(shù)字按鈕—按鈕被單擊(按鈕被單擊事件)計(jì)算—編輯框-添加文本「"?);返回(真);寫到這里,提醒大家的事,這個(gè)易飛揚(yáng)還沒(méi)有完全成型,因此語(yǔ)法還在改之中,原來(lái)稱“事件”后改為“事件接收”最新改為“事件處理”這個(gè)大家要理解哦,每次更改都是為了精益求精。創(chuàng)建前面我的描述都是太簡(jiǎn)單了,現(xiàn)在開(kāi)始,我還是要將正統(tǒng)的面向?qū)ο蟮母拍罱榻B給大家?!爸剌d”“封裝”、“繼承”和“多態(tài)”這些都是非常重要的。在面向?qū)ο笾杏幸痪淅显挘骸叭f(wàn)物皆對(duì)象”這句話并不高深哦,有些類似于物理上常用的“萬(wàn)物都有原子組成”,哈哈,看到這里,大家也就可以理解了,如果想要編程的話,那么將所有操作的窗口、組件、單元都看成一個(gè)對(duì)象,然后對(duì)這個(gè)對(duì)象進(jìn)行操作就好了呀,編程的思路會(huì)更加清晰的。創(chuàng)建其實(shí)前面例子中大家都用過(guò)了,類似于用“對(duì)象類的名字”后接空格和“你取的新生成對(duì)象的名字”后接“=”等于號(hào)加上“創(chuàng)建”關(guān)鍵字及“對(duì)象類的名字”白皮書中介紹的語(yǔ)法:創(chuàng)建類名稱[([參數(shù)表)]編譯器將根據(jù)參數(shù)表自動(dòng)搜尋并調(diào)用合適的“初始化”方法。創(chuàng)建類的對(duì)象,會(huì)導(dǎo)致該類及其所有基類中的“初始化”方法被調(diào)用。最基礎(chǔ)類(系統(tǒng)?對(duì)象)的“初始化”方法被最先調(diào)用,該類自身的“初始化”方法被最后調(diào)用。如果其中某個(gè)類有多個(gè)重載的“初始化”方法,編譯器將根據(jù)規(guī)則選擇其中之一調(diào)用。示例:對(duì)象對(duì)象1二創(chuàng)建對(duì)象;學(xué)生對(duì)象張三二創(chuàng)建學(xué)生對(duì)象("張三");銷毀用戶不需要關(guān)心對(duì)象何時(shí)被銷毀以及如何銷毀。這完全是“垃圾收集器”的工作。在對(duì)象被銷毀之前,其“清理()”方法會(huì)被系統(tǒng)調(diào)用。用戶可在此方法中做一些處理,但這種需求并不多見(jiàn)。重載那么對(duì)于一個(gè)類中的方法命令,如果重名了,就是“重載”這個(gè)問(wèn)題的由來(lái)類似于中國(guó)人口那么多,那么叫“王強(qiáng)”、“趙軍”的不計(jì)其數(shù),這個(gè)就是重名了,但人還是不一樣的,因?yàn)槟敲炊嗳瞬豢赡苁且粋€(gè)人吧?,F(xiàn)在好了,在編程中,于一類的事物可以只取一個(gè)名字,而參數(shù)不同就可以進(jìn)行處理了,這樣不僅可以節(jié)約名稱(有意義名字總有用完的一天),還可以讓系統(tǒng)去自動(dòng)根據(jù)參數(shù)的不同來(lái)進(jìn)行處理。很強(qiáng)的功能哦。在一個(gè)類中,如果多個(gè)方法(不包括基類中的方法)具有“相同的方法名稱和不同的參數(shù)形式”那么稱這個(gè)方法名稱被“重載”“不同的參數(shù)形式”意味著:參數(shù)個(gè)數(shù)不同,或參數(shù)個(gè)數(shù)相同但“相同位置處有不同類型的參數(shù)”編譯器將根據(jù)實(shí)際傳入的參數(shù)形式選擇調(diào)用匹配的重載方法。 下面還是舉個(gè)例子來(lái)說(shuō)明的好。例如我們有兩個(gè)名為“移動(dòng)”的方法命令,參數(shù)不一樣,一個(gè)方法只有一個(gè)參數(shù)是文本型,表示地點(diǎn),另一個(gè)方法有兩個(gè)參數(shù)是XY坐標(biāo)。公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)(){好朋友?移動(dòng)("大連");好朋友?移動(dòng)(123,456);}}公開(kāi)類好朋友{公開(kāi)靜態(tài)移動(dòng)(文本地點(diǎn)){控制臺(tái)?輸出行("移動(dòng)到"+地點(diǎn));}公開(kāi)靜態(tài)移動(dòng)(小數(shù)坐標(biāo)X,小數(shù)坐標(biāo)Y){控制臺(tái)?輸出行("移動(dòng)到"+坐標(biāo)X.到文本()+","+坐標(biāo)Y.到文本());}}運(yùn)行結(jié)果如下:怎么樣,厲害吧,易飛揚(yáng)編譯器生成的代碼會(huì)自動(dòng)處理一些事情的,有點(diǎn)智能化哦。實(shí)際上將“重載”理解為“重名”就好了。封裝講繼承之前要講到封裝的。封裝聽(tīng)起來(lái)很可怕,其實(shí)它什么也不是。就是將類裝在一個(gè)盒子里,不可見(jiàn),外國(guó)人以前稱之為黑盒子,現(xiàn)在叫封裝,換湯不換藥而已。還記得前面說(shuō)過(guò)的類中有不公開(kāi)的私有成員嗎?這個(gè)就是其他人不可見(jiàn)了,就稱之為封裝了。白皮書中是這樣說(shuō)的:類可以使用私有成員存儲(chǔ)內(nèi)部數(shù)據(jù),可以使用私有方法對(duì)內(nèi)部數(shù)據(jù)進(jìn)行處理,可以通過(guò)公開(kāi)或擴(kuò)展的屬性、方法、事件對(duì)外界提供操作接口,這些都是類的封裝機(jī)制的體現(xiàn)。也就是你的好朋友自己有五臟六腹,不用你給他就有,他也不會(huì)給你看,因?yàn)檫@是他的隱私。但是他有衣服、名字等這些外在的東西你能看到,他會(huì)說(shuō)話,這是他的公開(kāi)的接口,雖然我們并不了解他的真實(shí)想法,這也是一種保護(hù)的方法。具體的例程看前面的沒(méi)有公開(kāi)屬性的類方法命令就行了。繼承父母的財(cái)產(chǎn)可以由孩子來(lái)繼承,父母的基因可以傳承給子女,傳承后可能有些基本的沒(méi)有改變,有些就有些改變了。下面是兩個(gè)公開(kāi)類,類名不一樣,但是小汽車是個(gè)子類,他的父類就是汽車。汽車可以包含的子類很多,如公交車,卡車等。下面給出代碼:公開(kāi)類汽車{公開(kāi)移動(dòng)(文本地點(diǎn)){控制臺(tái)?輸出行("移動(dòng)到"+地點(diǎn));}公開(kāi)移動(dòng)(小數(shù)坐標(biāo)X,小數(shù)坐標(biāo)Y){控制臺(tái)?輸出行("移動(dòng)到"+坐標(biāo)X.到文本()+","+坐標(biāo)Y.到文本());}}公開(kāi)類小汽車<基類=汽車〉{公開(kāi)移動(dòng)(文本地點(diǎn)){控制臺(tái)?輸出行("安裝火箭移動(dòng)到"+地點(diǎn));}公開(kāi)移動(dòng)(小數(shù)坐標(biāo)X,小數(shù)坐標(biāo)Y){控制臺(tái)?輸出行("安裝火箭移動(dòng)到"+坐標(biāo)X.到文本()+","+坐標(biāo)Y.到文本());調(diào)用的代碼為以下:公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)(){汽車奇瑞=創(chuàng)建汽車;〃汽車奇瑞=創(chuàng)建小汽車;奇瑞?移動(dòng)("大連");奇瑞?移動(dòng)(123,456);}}大家可以看到,上述代碼中如果將第一行的創(chuàng)建代碼屏蔽,與將第二行的創(chuàng)建代碼屏幕后的執(zhí)行效果是不一樣的。因?yàn)樾∑嚴(yán)^承了父類汽車的兩個(gè)方法,因此根據(jù)創(chuàng)建時(shí)的不同,運(yùn)行效果也就不一樣了。這個(gè)哪里運(yùn)用最多呢?這樣有什么好處呢?原來(lái),可以將一些類封裝為類庫(kù),然后公開(kāi)接口,如果你對(duì)某個(gè)類不滿意,你就可以繼承他的類,原始的類庫(kù)不用更改。也方便大型軟件的共同開(kāi)發(fā),架構(gòu)師將父類全部定義好,即使是空的沒(méi)有代碼的也無(wú)所謂了,然后由下面的工程師制作子類繼承,將真實(shí)的代碼寫入。改進(jìn)軟件也成為一件非常方便的事,如果某個(gè)類中的功能不適合使用了,需要升級(jí)了,就可以再一次地繼承他,方便了程序的升級(jí)。多態(tài)多態(tài)實(shí)際上是與對(duì)象緊密相聯(lián)系的。在類中,可以創(chuàng)建一個(gè)方法,如果這個(gè)方法中采用了對(duì)象作為參數(shù),那么如果對(duì)象傳遞時(shí)是基類,那么就按基類進(jìn)行處理,如果對(duì)象傳遞時(shí)是子類,那么就按子類進(jìn)行處理。大家看下面的代碼:公開(kāi)類基類{公開(kāi)輸出(){控制臺(tái)?輸出行(〃基類〃);}}公開(kāi)類子類〈基類=〃基類〃〉{公開(kāi)輸出(){控制臺(tái)?輸出行(〃子類〃);}}上述代碼中有兩個(gè)類,一個(gè)是基類,一個(gè)是子類。那么都有相同的輸出方法,且子類的輸出方法覆蓋了父類的輸出方法。當(dāng)創(chuàng)建不同的對(duì)象時(shí),那么如果傳遞了這些不同的對(duì)象,就會(huì)按不同對(duì)象進(jìn)行處理,代碼如下:公開(kāi)類啟動(dòng)類{公開(kāi)靜態(tài)啟動(dòng)(){基類基類1=創(chuàng)建基類();子類子類1=創(chuàng)建子類();測(cè)試多態(tài)(基類1);測(cè)試多態(tài)(子類1);}靜態(tài)測(cè)試多態(tài)(基類參數(shù)){參數(shù)?輸出();}}上述代碼中,可以看到,加了一個(gè)“創(chuàng)建多態(tài)”的方法命令,而這個(gè)方法命令的參數(shù)是對(duì)象,因此當(dāng)上述“啟動(dòng)”方法命令中創(chuàng)建了兩個(gè)不同的對(duì)象,一個(gè)是父對(duì)象,一個(gè)是子對(duì)象,于是在調(diào)用“測(cè)試多態(tài)”的靜態(tài)方法時(shí),就根據(jù)不同的對(duì)象進(jìn)行了不同的處理。接口“接口”很簡(jiǎn)單,就是這樣一種東西:就是空的方法組成的一個(gè)類,打包成類模塊,然后供大家一起調(diào)用。這個(gè)類里的方法中,沒(méi)有具體的代碼,就是一個(gè)空的表,也可稱之為接口表。類似于C語(yǔ)言中的頭文件。接口具體的好處是在于多人工程開(kāi)發(fā)時(shí),由系統(tǒng)分析師制定出統(tǒng)一標(biāo)準(zhǔn)的接口,程序師進(jìn)行具體接口程序的編程,這樣大家在進(jìn)行大型工程項(xiàng)目時(shí)就通過(guò)接口進(jìn)行溝通了。使用“接口”時(shí)要注意以下幾點(diǎn):接口只“聲明”一個(gè)或多個(gè)“公開(kāi)”的方法,但不提供方法的實(shí)現(xiàn)代碼。也就是不需要系統(tǒng)分析師寫代碼。定義接口方法時(shí)可以省略掉方法的“公開(kāi)”屬性,編譯器默認(rèn)其具有此屬性。也就是說(shuō)系統(tǒng)分析師可以偷一些懶了。寫接口的格式樣例如下:公開(kāi)接口接口1{公開(kāi)接口方法1();公開(kāi)接口方法2();}接口聲明與類聲明是同級(jí)別的。只有類可以實(shí)現(xiàn)接口。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。一個(gè)接口可以實(shí)現(xiàn)多個(gè)方法。接口文件編譯為類庫(kù)后,由系統(tǒng)分析師提交給程序師具體實(shí)現(xiàn),不必提供類庫(kù)的源文件。也就是說(shuō)上述接口定義的代碼保存為EF文件,然后編譯為ECL文件,只要提供程序員ECL文件給他們編程就可以了。接口類似一種“規(guī)范”如果某個(gè)類實(shí)現(xiàn)了此接口,表明此類遵循了此規(guī)范,以后就可以按照這種規(guī)范的要求來(lái)使用此類。當(dāng)系統(tǒng)分析師提供類以后,由程序師來(lái)實(shí)現(xiàn)接口的具體代碼時(shí),要將此接口中的所有方法實(shí)現(xiàn),一個(gè)也不能少哦,編譯器會(huì)做嚴(yán)格的檢查。一個(gè)類欲實(shí)現(xiàn)某個(gè)接口,意味著這個(gè)類“必須實(shí)現(xiàn)這個(gè)接口(及其所有基接口)中聲明的所有方法”實(shí)現(xiàn)接口,就是由程序師具體實(shí)現(xiàn)原來(lái)接口表中空方法的代碼。那么在定義類時(shí),程序師需要將接口的信息告訴類。定義類時(shí),通過(guò)“接口實(shí)現(xiàn)表”屬性來(lái)指定該類所實(shí)現(xiàn)的接口,示例代碼如下:類類1<接口實(shí)現(xiàn)表=接口1> 〃指定單個(gè)已實(shí)現(xiàn)的接口{公開(kāi)接口方法1(){〃這里需要程序員添加具體實(shí)現(xiàn)代碼}公開(kāi)接口方法2(){〃這里需要程序員添加具體實(shí)現(xiàn)代碼}}類類2<接口實(shí)現(xiàn)表=接口1,接口2,接口3>

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論