九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

《面向?qū)ο缶幊獭方虒W(xué)設(shè)計(jì)大綱

  • 資源ID:87349071       資源大?。?span id="24d9guoke414" class="font-tahoma">8.54MB        全文頁(yè)數(shù):194頁(yè)
  • 資源格式: DOC        下載積分:40積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要40積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

《面向?qū)ο缶幊獭方虒W(xué)設(shè)計(jì)大綱

易飛揚(yáng)面向?qū)ο缶幊桃罪w揚(yáng)面向?qū)ο缶幊?分類2啟動(dòng)3公開(kāi)4私有4靜態(tài)4非靜6對(duì)象7成員8初始9清理10屬性10事件11創(chuàng)建13銷毀13重載13封裝15繼承15多態(tài)16接口17總結(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)類的代碼吧。上述代碼中,控制臺(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ō)話”和“行走”,代碼如下:調(diào)用程序代碼如下:運(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ò)編譯,代碼如下:如果我們改為以下的調(diào)用方式,就又可以進(jìn)行正常的編譯運(yùn)行了:上述代碼中,用好朋友這個(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ò)的代碼如下所示:上述代碼中,可以看到,在好朋友的類中,定義了一個(gè)“調(diào)用”的方法,此方法中又創(chuàng)建了一個(gè)叫趙強(qiáng)的對(duì)象實(shí)體,由這個(gè)對(duì)象實(shí)體調(diào)用好朋友類的“說(shuō)話”非靜態(tài)方法。如何看待這種現(xiàn)象呢?可以將靜態(tài)方法看作是此類的外部工具,表現(xiàn)形式如下:這樣大家就易于理解為何可以在類的內(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)用的代碼:運(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ù)本,本立而道生。”“初始化”必須是非“靜態(tài)”的、非“私有”的、無(wú)返回值的類成員方法,可以沒(méi)有參數(shù)或有多個(gè)參數(shù),允許被重載?!办o態(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è)例子:在上述代碼中,“易語(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è)事件子程序的代碼:上述代碼中,大家可以看到,在聲明的部分,只是比普通的方法多了“事件接收”字樣,在后面的參數(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)行了處理。寫到這里,提醒大家的事,這個(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)用最多呢?這樣有什么好處呢?1原來(lái),可以將一些類封裝為類庫(kù),然后公開(kāi)接口,如果你對(duì)某個(gè)類不滿意,你就可以繼承他的類,原始的類庫(kù)不用更改。2也方便大型軟件的共同開(kāi)發(fā),架構(gòu)師將父類全部定義好,即使是空的沒(méi)有代碼的也無(wú)所謂了,然后由下面的工程師制作子類繼承,將真實(shí)的代碼寫入。3改進(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):1接口只“聲明”一個(gè)或多個(gè)“公開(kāi)”的方法,但不提供方法的實(shí)現(xiàn)代碼。也就是不需要系統(tǒng)分析師寫代碼。2定義接口方法時(shí)可以省略掉方法的“公開(kāi)”屬性,編譯器默認(rèn)其具有此屬性。也就是說(shuō)系統(tǒng)分析師可以偷一些懶了。寫接口的格式樣例如下:公開(kāi) 接口 接口1 公開(kāi) 接口方法1(); 公開(kāi) 接口方法2();接口聲明與類聲明是同級(jí)別的。3只有類可以實(shí)現(xiàn)接口。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。一個(gè)接口可以實(shí)現(xiàn)多個(gè)方法。4接口文件編譯為類庫(kù)后,由系統(tǒng)分析師提交給程序師具體實(shí)現(xiàn),不必提供類庫(kù)的源文件。也就是說(shuō)上述接口定義的代碼保存為EF文件,然后編譯為ECL文件,只要提供程序員ECL文件給他們編程就可以了。5接口類似一種“規(guī)范”,如果某個(gè)類實(shí)現(xiàn)了此接口,表明此類遵循了此規(guī)范,以后就可以按照這種規(guī)范的要求來(lái)使用此類。6當(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è)接口(及其所有基接口)中聲明的所有方法”。7實(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> /指定多個(gè)已實(shí)現(xiàn)的接口 /.上述代碼中,類1指定了一個(gè)接口,類2指定了多個(gè)接口,具體的代碼在接口方法中實(shí)現(xiàn)。上述的代碼保存為EF文件后可以進(jìn)行編譯,在編譯為EXE文件時(shí),會(huì)檢查ECL類庫(kù)中的接口情況,如果正常,那么對(duì)于接口的調(diào)用就相當(dāng)于對(duì)于類中具體實(shí)現(xiàn)代碼的調(diào)用。接口通過(guò)“定義接口”、“實(shí)現(xiàn)接口”的兩個(gè)步驟后,下面就可以進(jìn)行“使用接口”了。定義接口是由系統(tǒng)分析師進(jìn)行的工作,實(shí)現(xiàn)接口是由程序師進(jìn)行的工作,一般大的項(xiàng)目就會(huì)這樣安排,以利于分工合作,但是如果小的項(xiàng)目一般用不上,即使用上了,上述的也可能是一個(gè)人進(jìn)行的。例如,在系統(tǒng)核心庫(kù)中已有一個(gè)現(xiàn)成的接口,并且被編譯為ECL類庫(kù),接口原代碼可能為以下形式:(定義接口)公開(kāi) 接口 錯(cuò)誤處理 公開(kāi) 邏輯 處理錯(cuò)誤(整數(shù) 錯(cuò)誤碼, 文本 錯(cuò)誤文本);實(shí)現(xiàn)接口的代碼可以寫成以下內(nèi)容:公開(kāi) 類 錯(cuò)誤處理類 <接口實(shí)現(xiàn)表 = 錯(cuò)誤處理> 公開(kāi) 邏輯 處理錯(cuò)誤(整數(shù) 錯(cuò)誤碼, 文本 錯(cuò)誤文本) 控制臺(tái).輸出行("哈哈,系統(tǒng)運(yùn)行時(shí)錯(cuò)誤被我捕獲!"); 控制臺(tái).輸出("錯(cuò)碼碼"); 控制臺(tái).輸出行(錯(cuò)誤碼); 控制臺(tái).輸出行(錯(cuò)誤文本); 返回 真; 調(diào)用接口的代碼可以為以下形式:公開(kāi) 類 啟動(dòng)類 公開(kāi) 靜態(tài) 啟動(dòng)() 控制臺(tái).輸出行("測(cè)試中"); 錯(cuò)誤處理 自定接口 = 創(chuàng)建 錯(cuò)誤處理類; 運(yùn)行環(huán)境.置錯(cuò)誤管理器(自定接口); 對(duì)象 對(duì)象1; / = 創(chuàng)建 對(duì)象(); 控制臺(tái).輸出行(對(duì)象1.到文本(); /故意使用 "空" 對(duì)象 當(dāng)調(diào)用接口的方法時(shí),就相當(dāng)于調(diào)用了具體對(duì)象實(shí)現(xiàn)的方法。其中有兩行大家要注意: 錯(cuò)誤處理 自定接口 = 創(chuàng)建 錯(cuò)誤處理類; 運(yùn)行環(huán)境.置錯(cuò)誤管理器(自定接口);上述代碼中可以看到,“錯(cuò)誤處理類”對(duì)象被聲明到“錯(cuò)誤處理”這個(gè)接口中,然后下面一行對(duì)接口的操作實(shí)際上就是對(duì)對(duì)象的操作。總結(jié)大家也可以先學(xué)習(xí)舊版易語(yǔ)言中的面向?qū)ο?,等熟悉之后,再學(xué)習(xí)易飛揚(yáng)就非常輕松了。對(duì)比如下:面向?qū)ο笠蛩豓B易語(yǔ)言易飛揚(yáng)構(gòu)造/初始有有有析構(gòu)/清理有有有繼承不支持有有虛擬方法不支持有有多態(tài)不支持有有封裝有有有重載/重名無(wú)無(wú)有接口無(wú)無(wú)有易語(yǔ)言中的面向?qū)ο蠼滩目梢酝ㄟ^(guò)學(xué)習(xí)易語(yǔ)言編程系統(tǒng)第十八章,或“易語(yǔ)言知識(shí)庫(kù)ESDN資料手冊(cè)開(kāi)發(fā)手冊(cè)易語(yǔ)言面對(duì)對(duì)象編程”中可以找到??唇滩牡哪康木褪且獙?shí)用,那么上述用了好朋友進(jìn)行比喻,如果應(yīng)用到實(shí)際程序中將會(huì)如何呢?你要將你的數(shù)據(jù)庫(kù)系統(tǒng)用分類的方法進(jìn)行分門別類,如菜單類,快捷鍵類,數(shù)據(jù)庫(kù)操作類這樣,一個(gè)具有人性化的程序就會(huì)出來(lái)了,里面的命令程序只要按面向?qū)ο蟮姆椒ㄕ{(diào)用就行了。好了,大話面向?qū)ο蟮酱藭焊嬉欢温?,希望通過(guò)這些小小的比喻大家能了解掌握面向?qū)ο蟮闹R(shí),逐步看一些大一些的面向?qū)ο蟮睦?,看的時(shí)候大家可以將這些大例程中的對(duì)象用概念圖畫出他的層次結(jié)構(gòu),互相之間的繼承關(guān)系,以這樣的方式對(duì)對(duì)象進(jìn)行研究,這樣基本上就能看明白了。最后要告訴大家的是,我還會(huì)寫更多的教材和練習(xí)給大家看,畢竟在大量的練習(xí)下才會(huì)有長(zhǎng)足的進(jìn)步。面向?qū)ο蟛⒉浑y,細(xì)細(xì)品味易飛揚(yáng),道法自然是根本,編程世界誰(shuí)稱王!第8章 易語(yǔ)言的子程序本章主要介紹易語(yǔ)言子程序的創(chuàng)建和調(diào)用、子程序參數(shù)的使用以及參數(shù)屬性的設(shè)置方法。本章學(xué)習(xí)內(nèi)容:8.1 新建子程序 8.6 參數(shù)的參考屬性8.2 調(diào)用子程序 8.7 子程序的返回值8.3 兩類子程序的區(qū)別 8.8 課后練習(xí)8.4 子程序參數(shù) 8.5 參數(shù)的可空屬性將程序分割成較小的功能單元就可以簡(jiǎn)化程序設(shè)計(jì)任務(wù),這些功能單元被稱為子程序,可以把共享的或常調(diào)用的功能置于子程序中,達(dá)到簡(jiǎn)化程序設(shè)計(jì)、方便代碼重用和提高程序維護(hù)效率的目的,這是結(jié)構(gòu)化程序設(shè)計(jì)的主要特征之一。 · 子程序可把程序劃分成相對(duì)獨(dú)立的功能單元,每個(gè)單元都比無(wú)子程序的整個(gè)程序容易調(diào)試和理解;· 一個(gè)應(yīng)用程序中的子程序,往往不必修改或只需稍作改動(dòng),便可以成為另一個(gè)程序的子程序。8.1 新建子程序下面我們就開(kāi)始新建第一個(gè)自定義子程序。方法十分簡(jiǎn)單,一步一步跟我來(lái)吧!首先在啟動(dòng)窗口添加一個(gè)按鈕,默認(rèn)名稱為“按鈕1”。雙擊按鈕1進(jìn)入代碼編輯界面。另一種更快捷的方法是,在代碼編輯區(qū)獲得焦點(diǎn)時(shí),同時(shí)按下“Ctrl 鍵”和“N鍵”,也可以新建子程序。將光標(biāo)移到代碼編輯行,右鍵單擊,在彈出菜單中選擇“新子程序”命令,就可以新建子程序。新建子程序的默認(rèn)名稱為“子程序1”,依此類推。第三種方法,到主菜單上。選擇“插入” “新子程序”命令也可新建子程序。“子程序1” 已經(jīng)存在,當(dāng)另一個(gè)子程序被修改成“子程序1”時(shí),易語(yǔ)言彈出出錯(cuò)提示。注意:在同一個(gè)程序集中,子程序名不能重復(fù)。特別在修改的時(shí)候,易語(yǔ)言會(huì)提示并修改已經(jīng)被使用過(guò)的名稱。被易語(yǔ)言修改的子程序名。新建的子程序沒(méi)有參數(shù),這需要操作者自行添加所需數(shù)目的參數(shù)并設(shè)置參數(shù)的類型以及參數(shù)的可空、參考和數(shù)組等屬性。特別應(yīng)該注意的是,每個(gè)新建的子程序都不會(huì)被易語(yǔ)言或其它子程序自動(dòng)調(diào)用,下面將講解如何調(diào)用子程序。8.2 調(diào)用子程序前一節(jié)中講了如何建立子程序,下面演示如何調(diào)用一個(gè)子程序。在“_按鈕1_被單擊”事件子程序中添加程序代碼 “ 子程序1() ”或直接復(fù)制名稱,將其粘貼過(guò)來(lái)。在“子程序1”中添加代碼:信息框(“你好!我是信息框?!?,#信息圖標(biāo),) 同一個(gè)子程序可以被多次調(diào)用。在“按鈕2”事件子程序中添加代碼 子程序1() 。 按F5鍵運(yùn)行程序,分別單擊“按鈕1”和“按鈕2”,都能彈出“子程序1”里的信息框。一個(gè)子程序可以在事件子程序和其它新建的子程序中多次被調(diào)用,也可以被其它程序集的事件子程序和新建的子程序調(diào)用。要注意的是,在本程序中定義的子程序只能在本程序中使用。每次調(diào)用子程序時(shí),子程序中的所有命令都將從第一條開(kāi)始順序執(zhí)行,當(dāng)執(zhí)行到子程序尾部或者遇到“返回”命令時(shí)即返回到調(diào)用此子程序命令的下一條命令處。這里的“子程序1”同時(shí)被修改為信息框子程序。把“子程序1”修改為“信息框子程序”。上節(jié)中提到了子程序名稱的問(wèn)題,這里我們還要提一個(gè)小建議。當(dāng)要修改一個(gè)子程序名稱時(shí),應(yīng)該直接到這個(gè)子程序的定義位置進(jìn)行修改。這樣可以使調(diào)用它的程序代碼同步修改該子程序的名稱,如上圖所示。這可以避免因調(diào)用無(wú)效子程序?qū)е碌木幾g錯(cuò)誤。 大家可以看到,子程序必須由其它子程序調(diào)用才能被執(zhí)行。子程序的調(diào)用方法與命令的調(diào)用方法完全一致。 8.3 兩類子程序的區(qū)別雖然新建的子程序(自定義子程序)和事件子程序的調(diào)用方法一樣,但它們之間也有一些不同之處。輸入?yún)?shù)名稱并設(shè)置類型。最后按F5鍵運(yùn)行程序,單擊“按鈕1”,信息框不見(jiàn)了。這是“_按鈕1_被單擊”子程序的原型,沒(méi)有參數(shù)。光標(biāo)選中子程序名稱,按Enter鍵添加一個(gè)參數(shù)。信息框看不到的原因是“_按鈕1_被單擊”子程序參數(shù)結(jié)構(gòu)被改變,易語(yǔ)言就會(huì)把它當(dāng)作新建的子程序,和“按鈕1”沒(méi)有任何聯(lián)系了,而新建子程序可以任意的添加參數(shù)。請(qǐng)大家自行總結(jié)一下新建的子程序和事件子程序的區(qū)別。8.4 子程序參數(shù)    參數(shù)和變量的使用方法一樣,可以使用賦值語(yǔ)句在參數(shù)內(nèi)臨時(shí)存儲(chǔ)數(shù)據(jù)。參數(shù)有參數(shù)名(用來(lái)在程序中引用一個(gè)參數(shù))、數(shù)據(jù)類型(確定參數(shù)能夠存儲(chǔ)數(shù)據(jù)的種類)以及“可空”和“參考”等屬性。參數(shù)只能在定義它的子程序中使用,相當(dāng)于局部變量。把8.3中“_ 按鈕1_被單擊”事件子程序的“參數(shù)1”刪除。參數(shù)的“類型”屬性可為空。如果空,默認(rèn)為整數(shù)型。在“信息框子程序”添加兩個(gè)文本型參數(shù)“參數(shù)1”和“參數(shù)2”。按F5鍵,程序無(wú)法運(yùn)行,在輸出面板中可以看到出錯(cuò)提示。這就說(shuō)明我們還要在調(diào)用上述子程序時(shí)提供具體的參數(shù)。用光標(biāo)選中此行并雙擊,在括號(hào)內(nèi)添加“,”號(hào),按Enter鍵??吹搅藛??調(diào)用子程序的命令前多了個(gè)“”號(hào),我們可以將它展開(kāi)。展開(kāi)的方法:直接雙擊或用鍵盤上的右光標(biāo)鍵。標(biāo)簽的標(biāo)題在此處設(shè)置。參數(shù)提示和實(shí)際參數(shù)的內(nèi)容是互相對(duì)應(yīng)的,在上面添加文本型數(shù)據(jù)“易語(yǔ)言”,當(dāng)程序運(yùn)行時(shí),下面“參數(shù)1”保存的數(shù)據(jù)就是“易語(yǔ)言”。接下來(lái)我們?cè)诔绦蛑袨樽映绦蛱峁┚唧w的參數(shù)數(shù)據(jù)。用“Ctrl+Tab”組合鍵切換到界面設(shè)計(jì)狀態(tài),在窗體上添加兩個(gè)標(biāo)簽和兩個(gè)編輯框,并將標(biāo)簽的標(biāo)題屬性設(shè)置為“輸入123”,提示用戶。這是前面提到的“按鈕1”,下面的是“按鈕2”。切換到代碼編輯狀態(tài),在子程序調(diào)用處,分別為兩個(gè)參數(shù)提供數(shù)據(jù)(編輯框提供的文本型數(shù)據(jù))。修改“信息框子程序”代碼。按F5鍵運(yùn)行程序,在“編輯框1”和“編輯框2”中輸入“123”,單擊“按鈕1”,第一個(gè)信息框被彈出。你也可以輸入其它的數(shù)據(jù),看一看效果。子程序如需要接收參數(shù)數(shù)據(jù),必須先在子程序定義處的參數(shù)表部分定義所需的參數(shù)。調(diào)用有參數(shù)的子程序時(shí)所傳遞過(guò)來(lái)的數(shù)據(jù)將被順序地填入對(duì)應(yīng)的參數(shù)中。如果傳遞過(guò)來(lái)的數(shù)據(jù)與對(duì)應(yīng)位置處的參數(shù)數(shù)據(jù)類型不一致,在可以互相轉(zhuǎn)換時(shí),系統(tǒng)將自動(dòng)將傳遞過(guò)來(lái)的數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)參數(shù)的數(shù)據(jù)類型后再賦值給該參數(shù);如果不能轉(zhuǎn)換,就會(huì)產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。如上面的第 2 步在調(diào)用子程序的同時(shí)就把“編輯框1.內(nèi)容”和“編輯框2.內(nèi)容”作為參數(shù)數(shù)據(jù)對(duì)應(yīng)地傳遞到了編輯框子程序內(nèi)的兩個(gè)參數(shù)“參數(shù)1”和“參數(shù)2”內(nèi)。 8.5 參數(shù)的可空屬性參數(shù)可空,就是說(shuō)該參數(shù)是可選的,從字面上就能理解它的意思。就是在調(diào)用子程序時(shí),可以不提供該參數(shù)所需的數(shù)據(jù)。看看下面的例子。將“參數(shù)2”可空屬性選中。方法是,選中該處單元格再單擊或選中后按空格鍵。把調(diào)用處的“參數(shù)2”刪除。如果某個(gè)參數(shù)的“可空”屬性為真,那么在調(diào)用本子程序時(shí),可以不給此參數(shù)傳遞數(shù)據(jù)。可空的參數(shù)主要用于支持具有默認(rèn)值的參數(shù);另外,如果給某個(gè)子程序添加了新參數(shù)卻又不想去更改以前調(diào)用此子程序的代碼,那么只要將新參數(shù)設(shè)置為可空參數(shù)就行了。8.6 參數(shù)的參考屬性打個(gè)比方,你家的門鎖有兩把鑰匙,分別由兩個(gè)人拿著。不管是哪一個(gè)人都可以打開(kāi)房門,改變家里家具的擺放位置。如果子過(guò)程的參數(shù)具有“參考”屬性,那么,當(dāng)調(diào)用子程序時(shí)負(fù)責(zé)提供該參數(shù)數(shù)據(jù)的是一個(gè)變量的話,在子程序中修改了該參數(shù)的值,那個(gè)變量的值也會(huì)跟著被改變。在“_按鈕1_被單擊”事件子程序中添加兩個(gè)局部變量。把編輯框提供的文本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。注意:文本型數(shù)據(jù)默認(rèn)具有參考屬性,所以此例中為了演示參數(shù)的參考屬性,把文本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。添加信息框,顯示調(diào)用子程序后,“變量2”的值。將“信息框子程序”兩個(gè)參數(shù)的類型改為整數(shù)型。添加代碼,修改“參數(shù)2”的值。注意:為了更好地了解程序的運(yùn)行過(guò)程,可以通過(guò)在關(guān)鍵代碼行前設(shè)置斷點(diǎn)的方法來(lái)跟蹤代碼行的執(zhí)行情況。在代碼行前設(shè)置斷點(diǎn)。設(shè)置斷點(diǎn)的方法:用光標(biāo)選中將被設(shè)置斷點(diǎn)的代碼行,再按F9鍵。按F5鍵運(yùn)行程序,在啟動(dòng)窗口的編輯框中輸入“123”,單擊“按鈕1”。窗口消失,程序停止,一個(gè)斷點(diǎn)變黃。這就說(shuō)明在“_按鈕1_被單擊”事件子程序中,第一個(gè)斷點(diǎn)處的“信息框子程序”將被執(zhí)行?!皡?shù)2”的值被改變?!皡?shù)1”的值是“變量1”的值。兩個(gè)條件都成立。再按F5鍵,“信息框子程序”里的代碼被執(zhí)行。說(shuō)明子程序已經(jīng)被調(diào)用。再按F5鍵,斷點(diǎn)變?yōu)榧t色,彈出條件成立的信息框。單擊“確定”按鈕。程序又跳到了“信息框子程序”被調(diào)用處的下一行代碼處,說(shuō)明“信息框子程序”執(zhí)行完畢。再按F5鍵,彈出“_按鈕1_被單擊”事件子程序中的信息框。由于運(yùn)行開(kāi)始時(shí)“編輯框1”內(nèi)的數(shù)據(jù)為空文本,轉(zhuǎn)換到整數(shù)后為“0”。即使“參數(shù)2”的數(shù)據(jù)被改變,“變量2”仍保存原值。“參數(shù)2”沒(méi)有設(shè)置參考。單擊“確定”按鈕,代碼運(yùn)行結(jié)束。關(guān)閉程序,然后設(shè)置“參數(shù)2”的參考屬性,設(shè)置“參數(shù)2”的參考屬性的方法類似可空屬性的設(shè)置,在參數(shù)定義表“參考”欄相應(yīng)空格內(nèi)單擊使之出現(xiàn)一個(gè)“”號(hào)。按F5鍵運(yùn)行。最后信息框顯示“變量2”的值和“參數(shù)2”的值是相同的。 當(dāng)使用變量向子程序的參數(shù)傳遞數(shù)據(jù)時(shí),如果所傳遞過(guò)來(lái)的變量為數(shù)組、用戶定義數(shù)據(jù)類型、庫(kù)定義數(shù)據(jù)類型、字節(jié)集型或文本型,則無(wú)論參數(shù)的“參考”屬性是否為真,都將是傳遞變量的指針(即該變量的內(nèi)存地址),這樣在子程序中改變?cè)搮?shù)的值時(shí)相應(yīng)變量的值也會(huì)被改變;如果所傳遞過(guò)來(lái)的變量類型與相應(yīng)參數(shù)的數(shù)據(jù)類型不一致但可以相互轉(zhuǎn)換,譬如將整數(shù)型變量傳遞到小數(shù)型的參數(shù)時(shí),則在數(shù)據(jù)被實(shí)際傳遞前,系統(tǒng)將首先自動(dòng)將整數(shù)型變量的值轉(zhuǎn)換為小數(shù)型數(shù)據(jù),然后再進(jìn)行傳遞,在這種情況下,即使參數(shù)的“參考”屬性為真,系統(tǒng)也無(wú)法傳遞指向原變量的指針,只能傳遞經(jīng)過(guò)類型轉(zhuǎn)換后的變量的值。如果系統(tǒng)將數(shù)據(jù)指針成功地傳遞過(guò)來(lái),那么在子程序中對(duì)此參數(shù)內(nèi)容的更改將會(huì)相應(yīng)地反映到調(diào)用子程序時(shí)負(fù)責(zé)提供相應(yīng)參數(shù)數(shù)據(jù)的變量上。8.7 子程序的返回值子程序可以返回?cái)?shù)據(jù),稱為返回值,但必須首先定義返回值的類型,并且要在子程序中使用“返回”命令進(jìn)行返回。將“信息框子程序”的返回值類型設(shè)置為整數(shù)型。刪除下面兩行代碼。參數(shù)2 123信息框 (“參考的使用方法?!?#換行符 “變量2=” 到文本 (變量2), 0,)在“_按鈕1_被單擊”事件子程序中添加名稱為“返回值”的整數(shù)型變量?!胺祷刂怠弊兞坑脕?lái)保存“信息框子程序”返回的整數(shù)型數(shù)值。在“信息框子程序”的每個(gè)分支處添加返回命令。將“信息框子程序”里的兩個(gè)“信息框”命令復(fù)制到“_按鈕1_被單擊”子程序的判斷語(yǔ)句中。最后按F5鍵運(yùn)行程序。調(diào)用一個(gè)子程序時(shí),子程序中的所有命令將從第一條開(kāi)始順序執(zhí)行,當(dāng)執(zhí)行到子程序尾部或者遇到“返回”命令時(shí)即返回到調(diào)用此子程序命令的下一條命令處。當(dāng)一個(gè)子程序有返回值時(shí),如果需要使用該返回值,可以把子程序調(diào)用命令嵌在其它命令中,如“變量1=變量2+子程序名(參數(shù))+變量3”(這里假設(shè)“子程序名(參數(shù))”有返回值),也可以建立一個(gè)與該返回值數(shù)據(jù)類型相同的變量來(lái)接收該返回值,即使用“變量名=子程序名(參數(shù))”的形式(“=”在這里是賦值號(hào))。8.8課后練習(xí)(1)練習(xí)子程序的建立與調(diào)用。 新建“Windows窗口程序”添加一個(gè)按鈕。添加如圖上的代碼。完成后運(yùn)行一下程序看看。這兩個(gè)地方添加什么值,才可以使程序運(yùn)行,并且能夠正確顯示呢?請(qǐng)大家來(lái)將這兩個(gè)命令補(bǔ)充完整。(2)練習(xí)編寫用子程序的方式表示兩數(shù)相加,返回和的例程。 ,新建易程序,放兩個(gè)編輯框組件與一個(gè)按鈕組件,雙擊按鈕組件,進(jìn)入程序代碼界面。新建一個(gè)子程序,名稱為:“和是幾”。加入兩個(gè)數(shù)。參數(shù)類型為整數(shù)型。返回值類型為整數(shù)型。在“_按鈕1_.被單擊”事件子程序下輸入以下程序代碼:信息框 (和是幾 (到數(shù)值 (編輯框1.內(nèi)容), 到數(shù)值 (編輯框2.內(nèi)容), 0, )在“和是幾”子程序下輸入以下程序代碼:返回(數(shù)1+數(shù)2)最后按F5鍵運(yùn)行程序看看。(2)用子程序的方式編寫判斷兩個(gè)數(shù)大小的程序,并返回最大數(shù)。 新建易程序,放兩個(gè)編輯框組件與一個(gè)按鈕組件,雙擊按鈕組件,進(jìn)入程序代碼界面。在“_按鈕1.被單擊”子程序下輸入以下程序代碼:信息框 (和是幾 (到數(shù)值 (編輯框1.內(nèi)容), 到數(shù)值 (編輯框2.內(nèi)容), 0, )在“和是幾”子程序下輸入以下程序代碼:如果 (數(shù)1 數(shù)2) 返回 (數(shù)1)否則 返回 (數(shù)2)如果結(jié)束最后按F5鍵運(yùn)行程序。大家再留意一下,“如果”命令還有這種形式的,這種形式的“如果”命令雖然占的代碼行稍多,但邏輯很清晰,提倡大家以后在使用“如果”命令時(shí)多使用這種形式。新建一個(gè)子程序,名稱為:“誰(shuí)最大”。加入兩個(gè)數(shù)。參數(shù)類型為整數(shù)型。返回值類型為整數(shù)型。第2章 編程的基礎(chǔ)概念在本章中,將講到編程的一些基礎(chǔ)知識(shí),包括變量的概念,變量的有效范圍,數(shù)據(jù)類型等知識(shí)。其后,本書將引導(dǎo)您編寫一個(gè)自己的MP3播放器,認(rèn)識(shí)窗口、按鈕、編輯框三個(gè)常用組件以及命令及事件子程序。本章學(xué)習(xí)內(nèi)容:2.1 編寫第二個(gè)程序 2.6 編寫一個(gè)MP3播放器2.2 什么是變量與常量 2.7 認(rèn)識(shí)窗口、按鈕、編輯框2.3 變量的數(shù)據(jù)類型 2.8 認(rèn)識(shí)事件子程序2.4 變量的有效范圍 2.9 認(rèn)識(shí)組件的方法2.5 變量的初始值 2.10 課后練習(xí)大家會(huì)說(shuō)1+2等于幾太簡(jiǎn)單了,這個(gè)例程雖然簡(jiǎn)單,但這是為以后進(jìn)行復(fù)雜一些的計(jì)算作準(zhǔn)備,所以我們先用最簡(jiǎn)單的例子來(lái)演示,大家只要學(xué)會(huì)寫這個(gè)小程序,再遇到復(fù)雜一些的計(jì)算,就可以自己寫了。那么如何用易語(yǔ)言實(shí)現(xiàn)1+2的計(jì)算呢,大家就跟著下面的步驟來(lái)吧。2.1 編寫第二個(gè)易程序首先啟動(dòng)易語(yǔ)言。點(diǎn)擊“編輯框”組件。用鼠標(biāo)在窗體上拖動(dòng)畫出一個(gè)編輯框組件。名稱為“編輯框1”。點(diǎn)擊“按鈕”組件。在窗體上拖動(dòng)鼠標(biāo)畫出一個(gè)按鈕組件。名稱為“按鈕1”。在屬性面板中找到按鈕的標(biāo)題屬性,將標(biāo)題內(nèi)容改為“計(jì)算1+2=?”。大家可以看到按鈕組件的標(biāo)題被更改了,大家再雙擊按鈕組件,進(jìn)入程序代碼設(shè)計(jì)界面。大家可以看到系統(tǒng)已自動(dòng)生成一個(gè)名稱為“_按鈕1_被單擊”的

注意事項(xiàng)

本文(《面向?qū)ο缶幊獭方虒W(xué)設(shè)計(jì)大綱)為本站會(huì)員(文***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!