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

上傳人:文*** 文檔編號:87349071 上傳時間:2022-05-09 格式:DOC 頁數(shù):194 大?。?.54MB
收藏 版權(quán)申訴 舉報 下載
《面向?qū)ο缶幊獭方虒W設(shè)計大綱_第1頁
第1頁 / 共194頁
《面向?qū)ο缶幊獭方虒W設(shè)計大綱_第2頁
第2頁 / 共194頁

本資源只提供2頁預覽,全部文檔請下載后查看!喜歡就下載吧,查找使用更方便

40 積分

下載資源

資源描述:

《《面向?qū)ο缶幊獭方虒W設(shè)計大綱》由會員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο缶幊獭方虒W設(shè)計大綱(194頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、《易飛揚面向?qū)ο缶幊獭? 《易飛揚面向?qū)ο缶幊獭?1 分類 2 啟動 3 公開 4 私有 4 靜態(tài) 4 非靜 6 對象 7 成員 8 初始 9 清理 10 屬性 10 事件 11 創(chuàng)建 13 銷毀 13 重載 13 封裝 15 繼承 15 多態(tài) 16 接口 17 總結(jié) 19 由于“易語言.飛揚”還未完全成型,在此過程中如果有所改動,教材也會相應(yīng)的改動,但是對于面向?qū)ο蟮木幊虂碚f,基本上是不會變的,因此本書作者才有信心將面向?qū)ο蟮木幊谭椒▽懗鰜怼? 之所以本書的名稱中有“編程思想”一樣,我們不是為了編程而去編程,那種整天加班,一天

2、到晚累得半死的生活并不是我們這些程序員理想中的生活,對于工作與生活的態(tài)度,也影響到我們編程中去,如何仿照自然的方法去編程,去生活同樣具有重要的意義。 那么什么是“對象”呢?這個問題一直困擾著很多編程的入門者,有說對象就是組件,有說對象就是類的實體化,雖然我不反對用這些術(shù)語,但我反對讓初學者搞不明白,實際上,“對象”就是你的一個好朋友,這個好朋友的功能強大,能夠幫助你完成你所設(shè)計的事情,那么,下面我們就介紹一直在你身邊的這個好朋友吧。 分類 物以類聚,人以群分,朋友也是這樣,如果你交個好朋友,那么就會受益無窮,如果你交了個損友,那么后果不難想象,所謂近墨者黑,近朱者赤,君子之交淡如水,

3、也就是說交一些具有平常心的朋友,不會讓你去冒險,不會讓你心煩意亂。 好了,想法是好的,那么就會去找,如果真的找到了,那么就恭喜你,如果找不到,也不必傷心。那么我們理想中的好朋友就是對象,而真實的好朋友就是對象的實體,我們把他們分為一類人“好朋友”,還有就是“普通朋友”、“同事”、“老師”、“陌生人”等。 通過以上,可以了解到面向?qū)ο缶幊讨小邦悺迸c“對象”的關(guān)系?!邦悺毕喈斢凇昂门笥选?、“普通朋友”、“同事”、“老師”、“陌生人”等這些思想的劃分,而具體的某個人就是類的“實際對象”。理想中的好朋友具有相關(guān)的特性,比如有身高,年紀,性格等信息,也可以在人生的道路上幫助你成長。 在面向?qū)ο笾校?/p>

4、把“相關(guān)特性”稱為“數(shù)據(jù)成員”,雖然聽起來很奇怪,但大家只要了解到,與老易語言中的屬性是差不多的。 在面向?qū)ο笾校选肮δ堋狈Q為“方法”,雖然聽起來很奇怪,但大家只要了解到,與老易語言中的方法命令是差不多的。 下面就來看第一個易飛揚類的代碼吧。 上述代碼中,控制臺就是一個對象,也是你的好朋友,他具有“輸出行”這樣的方法命令,后面所接就是他的參數(shù):“輸出的文本”。而“輸出的文本”是在上一行中進行了定義的,是一個文本變量,并且內(nèi)容是“易語言,你好!”,這樣一想,這個具體的好朋友還沒有分類呢,于是將這個好朋友分為“啟動類”,這個行為作為“啟動類”的一個“啟動”方法去執(zhí)行。 啟動

5、 上面已經(jīng)說過了,在上述這段代碼中,有一個類——“啟動類”,這是我們對好朋友的劃分,在該類中有一個方法——“啟動”方法,這是好朋友能做的事情?;ɡㄌ柪锩娴拇a就是事情的具體步驟。 好了,上述代碼是可以執(zhí)行的,大家還記得如何運行嗎?不會的請看本書第一章節(jié)中的內(nèi)容。 在易飛揚中,程序的運行要依賴一個很重要的類——它的類名為“啟動類”。在“啟動類”的下面有一個必有的方法——“啟動”方法,用法如其名,該方法是易飛揚程序的入口,也就是說,易飛揚的程序要從這個方法下面的代碼進行運行。大家可以把這個“啟動”方法看成是老易語言中的“_啟動子程序”子程序。這樣大家就可以很容易的看懂上面的代碼了。 注意了,

6、“啟動類”必須是“公開”的;而“啟動”方法必須是“公開”且“靜態(tài)”屬性。大家先不要管什么是“公開”、“靜態(tài)”,只要記下來就好了,繼續(xù)看下面的文字吧。 在“啟動”方法中的代碼,相信大家也能理解到了,是用控制臺輸出一行文字,文字的內(nèi)容是“易語言,你好!”。 不管如何,大家跟我學編程,我是不會虧待大家的,給大家一個小詩來說明我的歸納結(jié)果,大家有空就將這個口訣背下來哦,當出現(xiàn)對好朋友不理解時,只要背一下這個小詩,就基本上能解決問題了。 口訣一: 面向?qū)ο罂糠诸悾? 聲明類有屬性表。 公開大家都能用; 私有隱藏保安全。 內(nèi)部靜態(tài)調(diào)靜態(tài); 外部類名加成員。 非靜創(chuàng)建類對象; 對

7、象名加類成員。 面向?qū)ο罂糠诸悾? (面向?qū)ο笾杏深惤M成基本單位,一個類中有多個方法) 聲明類法有屬性。 (類有類的屬性表,方法有方法的屬性表) 內(nèi)部靜態(tài)調(diào)靜態(tài); (在內(nèi)部(類中)靜態(tài)成員只能被靜態(tài)成員所調(diào)用;) 外部類名加成員。 (而在外部(類外),只能通過“類名.”加成員名的方法進行調(diào)用。) 非靜創(chuàng)建類對象; (“非靜態(tài)”成員的使用方法是:用類生成的“對象名”+“.”+類成員) 對象名加類成員。 (同上) 公開大家都能用; (具有公開屬性的類或方法,在其他的類或方法中可以直接調(diào)用,“公開”就是可被調(diào)用,其方法的引用就是類名+方法名即可。) 私有隱藏保安全。

8、 (私有屬性只是為了安全考慮,不向其他程序員公開,因此使用時只能在類的內(nèi)部使用) 難免本文還是要先來說明一下這些類或類成員名稱前面的這些名詞是做什么用的。 公開 面向?qū)ο罂糠诸悾? 聲明類有屬性表。 公開大家都能用; 私有隱藏保安全。 私有 了解“公開”與“私有” 哈哈,現(xiàn)在的人都是說自己有人權(quán)保護的,因為每個人都有自己的隱私,你的好朋友也不例外,當你的好朋友出現(xiàn)在你面前時,他公開了他的形象和語言,以及行為,但他回家后,是自己會吃飯、睡覺等,這些是不會公開給你看的哦。這樣的好處是,你的好朋友不會隨時公開他的行為,他就具有自主性,自動性,對他也是個保持哦。 在面象對象中

9、也是這樣,當公開時,其他人都是可視的可調(diào)用的,但也設(shè)置一個“私有”屬性,對這個類進行保護,保護的重要意義在于,這些都是內(nèi)部的工作,自動完成的,不需要其他人為的干涉,否則就是干涉內(nèi)政,或干涉別人的隱私羅。 無論類、還是類中方法與屬性,都可以設(shè)定它對外部是否可見,這個“可見”便是在被外部應(yīng)用時是否可被調(diào)用?!肮_”就是可被調(diào)用,而“私有”則不能。私有是面向?qū)ο笾械囊粋€重要工具,用于保護一些不想被外部調(diào)用的功能實現(xiàn),保證安全性。 靜態(tài) 內(nèi)部靜態(tài)調(diào)靜態(tài); 外部類名加成員。 非靜創(chuàng)建類對象; 對象名加類成員。 了解“靜態(tài)”與“非靜態(tài)” 你的好朋友可有不同的類型哦,有的是好靜,喜歡聽你

10、的訴說,有的好動,自己就滔滔不絕,讓人發(fā)笑,一般人都是喜歡安靜,靜勝燥,柔勝鋼,陰盛陽衰,我也說多了,哈哈。 方法具有“靜態(tài)”屬性,如果沒有這個屬性就說明是“非靜態(tài)”的方法。 “靜態(tài)”從字面上是很難理解的,在我看來,只是給方法加上了一些限制而已。在內(nèi)部(類中)靜態(tài)成員只能被靜態(tài)成員所調(diào)用;而在外部(類外),只能通過“類名.”加成員名的方法進行調(diào)用。在外部調(diào)用靜態(tài)方法時,也可以把它看作老易語言中的“子程序”,這樣大家可能會更好的理解它。 好,給大家一個例程,以說明靜態(tài)的調(diào)用方法是與老易語言中的一樣的。 下面是一個“好朋友”的類,其中明兩個方法命令:“說話”和“行走”,代碼如下:

11、 調(diào)用程序代碼如下: 運行結(jié)果如下圖所示: 可以看到以上的靜態(tài)方法的調(diào)用,都與原老易語言的“子程序”或組件的調(diào)用方法是差不多的。 當然了,當一個方法公開時,在其他類中是可以調(diào)用的,如果一個方法是私有的,那么在其他類中就不可調(diào)用。 如將上述“說話”或“行走”改為私有屬性,那么在“啟動”方法中就不能調(diào)用了。 非靜 “非靜態(tài)”成員的使用方法的關(guān)鍵在于先用“對象”創(chuàng)建后再使用創(chuàng)建的對象調(diào)用。 將上述的做一個反例來用,例如:將上述代碼中的“說話”和“行走”方法命令中的靜態(tài)屬性去掉,就不能通過編譯,代碼如下: 如果我們改為以下的調(diào)用方式,就又可以進行正常的編譯運行了:

12、 上述代碼中,用好朋友這個類,生成了一個新的對象“張三”,由于張三已成為好朋友的一個具體的對象,因此使用此對象調(diào)用這個類中的方法命令“說話”和“行走”。而大家在實際編程中,可以將方法命令換成你想要操作的其他功能,如建立菜單,打開窗口,處理數(shù)據(jù)等,也就實現(xiàn)了你的面向?qū)ο蟮某绦蛄恕? “非靜態(tài)”成員的使用方法是: 用類生成的“對象名”+“.”+類成員 其中“類成員”可以是非靜態(tài)的數(shù)據(jù)和非靜態(tài)的方法命令。 對象 下面大家可能會產(chǎn)生個疑問,一是在類的內(nèi)部調(diào)用非靜態(tài)方法命令時,是否也需要先聲明一個對象呢?解決疑問的方法是自己動手,寫幾個不同的例子,用易飛揚編譯后來驗證一下。下面進行例

13、子的比較。 先來研究一下:在類的內(nèi)部調(diào)用非靜態(tài)方法命令時,是否也需要先聲明一個對象呢?回答是:也是必須要先創(chuàng)建一個對象才能使用。 通過的代碼如下所示: 上述代碼中,可以看到,在好朋友的類中,定義了一個“調(diào)用”的方法,此方法中又創(chuàng)建了一個叫趙強的對象實體,由這個對象實體調(diào)用好朋友類的“說話”非靜態(tài)方法。如何看待這種現(xiàn)象呢?可以將靜態(tài)方法看作是此類的外部工具,表現(xiàn)形式如下: 這樣大家就易于理解為何可以在類的內(nèi)部再創(chuàng)建他自己本身了。也就表明靜態(tài)類實際上與類本身是無關(guān)的,而非靜態(tài)類是依賴于類本身的。 成員 對于類的數(shù)據(jù)成員的理解,其實也是很簡單的,我們只要把它看成是對象的“屬性”就

14、可以了。這個屬性,就像是“好朋友”的姓名,衣服顏色一樣的特征。 在“易語言用戶”類的開頭,聲明了一個“公開”的文本數(shù)據(jù)成員“姓名”,用于保存易語言用戶的姓名。在“易語言用戶”類的方法成員中調(diào)用了該數(shù)據(jù)成員的值,并利用控制臺輸出,這樣就可以在有很多客戶的情況下,區(qū)分我們正在與哪個用戶進行交流。 調(diào)用的代碼: 運行的結(jié)果如下: 在“啟動”方法中,聲明創(chuàng)建了兩個“易語言用戶”類對象,“李文”、“張劍”,并分別給這兩個對象的“小名”屬性賦了值。如何區(qū)分是哪位用戶有動作呢,就要通過用記的“小名”進行區(qū)分了。 通過以上的簡單講解,相信大家對面向?qū)ο笥袀€入門的了解,然后大家可以將上

15、述代碼中無用的控制臺命令換成有用的程序代碼,就可以實現(xiàn)面向?qū)ο蟮木幊塘?。當然,繼續(xù)了解了下的事物對編程更加有用。 初始 實際上“初始化”是一個特殊的類方法命令,類似于老易語言的“_初始化”子程序,希望你對老易語言中的面向?qū)ο笥兴私狻? 也就是說:當一個類的對象被創(chuàng)建時,“初始化”方法被自動調(diào)用;這個初始化方法可以不寫,如果寫了就會被首先執(zhí)行,一般來說,這是用于對類的創(chuàng)建時的預置環(huán)境用的,相當于一個配置工具。我們用易語言不是也要配置一些東西,自己習慣的東西嗎,致于您要配置什么,就根據(jù)需要寫什么吧。 我們選朋友時也是這樣,需要一定的標準,適合的朋友才選擇,不適合的朋友就選離,所謂“君子務(wù)本

16、,本立而道生。” “初始化”必須是非“靜態(tài)”的、非“私有”的、無返回值的類成員方法,可以沒有參數(shù)或有多個參數(shù),允許被重載。 “靜態(tài)初始化”方法必須是“公開”的、“靜態(tài)”的、無返回值且無參數(shù)的類成員方法。 以上所有方法均可以被省略,如果被省略,易語言編譯器會自動生成其默認實現(xiàn)。也就是默認有一個空的初始化方法存在,任務(wù)是什么也不做。 編譯器在編譯具有基類的類的任一初始化方法之前,如果發(fā)現(xiàn)該初始化方法中不存在“調(diào)用其基類初始化方法的語句”,將自動在首部插入一條調(diào)用其基類默認初始化方法(即無參數(shù)的初始化方法)的語句,以確?;惖某跏蓟椒ū徽{(diào)用。 清理 實際上“清理”是一個特殊

17、的類方法命令,類似于老易語言中的“_銷毀”子程序。 也就是在類結(jié)結(jié)果束前進行一些清理的工作。比較安慰的是,易飛揚具有內(nèi)存自動清潔功能,否則在這一步將要大家花費大量的時間進行內(nèi)容的清理工作。如果大家不寫這個類方法,默認是自動產(chǎn)生一個空的清理方法,當然是什么也不做啦。不過中國人交朋友都是有始有終的,也稱之為善始善終。既然有出生、相遇……,就有分別、死亡……,這是萬世不滅的道理。 “清理”必須是“公開”的、非“靜態(tài)”的、無返回值且無參數(shù)的類成員方法。 系統(tǒng)在調(diào)用類的“清理”方法之后,總是會調(diào)用其基類的“清理”方法。這是一個遞歸過程,最終的結(jié)果是,該類的最基礎(chǔ)類(系統(tǒng).對象)的“清理”方法被最后

18、調(diào)用。 屬性 在成員中實際上已講了一些屬性的概念,那是成員屬性,相當于老易語言中組件的屬性。 在此還要講的是“屬性方法”,在易語言的使用中,大家一定是非常羨慕組件中的屬性不僅可以賦值,還可以讀取吧,現(xiàn)在你也可以了。 下面給出一個例子: 在上述代碼中,“易語言用戶”類設(shè)置了一個“年齡”屬性方法,用于返回屬性值,第二個帶有整數(shù)參數(shù)的“年齡”屬性方法,用于接受屬性的賦值。 啟動類中,讀取屬性的值,實質(zhì)上是調(diào)用屬性讀取方法;對屬性賦值,實質(zhì)上是調(diào)用屬性設(shè)置方法。 怎么樣,你也可以制作屬性了吧。 事件 大家還記得在老版易語言中,那個按鈕被單擊事件,按鈕被雙擊事件……嗎?這是大家很羨

19、慕的一件事吧,您可能一直在想,怎么我做不了這種事件呢?從我的角度來看,這個就是一個特殊的方法,這個方法有特別的規(guī)定。看看下面一個事件子程序的代碼: 上述代碼中,大家可以看到,在聲明的部分,只是比普通的方法多了“事件接收”字樣,在后面的參數(shù)中“被單擊事件”去除事件兩個字后,“_被單擊”拿到了前面與組件相接,形成事件名稱。在老版易語言中也是規(guī)定好的“_按鈕_被單擊”事件是固定不變的,如果變了就不起作用了,在這里也是這樣的,如果不按規(guī)定寫,就不會與事件的產(chǎn)生起作用了。換句話說,對組件的事件處理是通過匹配這些文本后進行相應(yīng)的處理的。 有個例子是說明了這個問題的。就是帶窗口的計算器的例子,這個例

20、子對每個按鈕被按下的事件進行了處理。 寫到這里,提醒大家的事,這個易飛揚還沒有完全成型,因此語法還在改之中,原來稱“事件”,后改為“事件接收”,最新改為“事件處理”,這個大家要理解哦,每次更改都是為了精益求精。 創(chuàng)建 前面我的描述都是太簡單了,現(xiàn)在開始,我還是要將正統(tǒng)的面向?qū)ο蟮母拍罱榻B給大家?!爸剌d”、“封裝” 、“繼承”和“多態(tài)”這些都是非常重要的。 在面向?qū)ο笾杏幸痪淅显挘骸叭f物皆對象”,這句話并不高深哦,有些類似于物理上常用的“萬物都有原子組成”,哈哈,看到這里,大家也就可以理解了,如果想要編程的話,那么將所有操作的窗口、組件、單元都看成一個對象,然后對這個對象

21、進行操作就好了呀,編程的思路會更加清晰的。 創(chuàng)建其實前面例子中大家都用過了,類似于用“對象類的名字”后接空格和“你取的新生成對象的名字”后接“=”等于號加上“創(chuàng)建”關(guān)鍵字及“對象類的名字”。 白皮書中介紹的語法: 創(chuàng)建 類名稱[([參數(shù)表])] 編譯器將根據(jù)參數(shù)表自動搜尋并調(diào)用合適的“初始化”方法。 創(chuàng)建類的對象,會導致該類及其所有基類中的“初始化”方法被調(diào)用。最基礎(chǔ)類(系統(tǒng).對象)的“初始化”方法被最先調(diào)用,該類自身的“初始化”方法被最后調(diào)用。如果其中某個類有多個重載的“初始化”方法,編譯器將根據(jù)規(guī)則選擇其中之一調(diào)用。 示例: 對象 對象1 = 創(chuàng)建 對象; 學

22、生對象 張三 = 創(chuàng)建 學生對象("張三"); 銷毀 用戶不需要關(guān)心對象何時被銷毀以及如何銷毀。這完全是“垃圾收集器”的工作。 在對象被銷毀之前,其“清理()”方法會被系統(tǒng)調(diào)用。用戶可在此方法中做一些處理,但這種需求并不多見。 重載 那么對于一個類中的方法命令,如果重名了,就是“重載”。這個問題的由來類似于中國人口那么多,那么叫“王強”、“趙軍”的不計其數(shù),這個就是重名了,但人還是不一樣的,因為那么多人不可能是一個人吧。現(xiàn)在好了,在編程中,于一類的事物可以只取一個名字,而參數(shù)不同就可以進行處理了,這樣不僅可以節(jié)約名稱(有意義名字總有用完的一天),還可以讓系統(tǒng)去自動根據(jù)參數(shù)

23、的不同來進行處理。很強的功能哦。 在一個類中,如果多個方法(不包括基類中的方法)具有“相同的方法名稱和不同的參數(shù)形式”,那么稱這個方法名稱被“重載”。 “不同的參數(shù)形式”意味著:參數(shù)個數(shù)不同,或參數(shù)個數(shù)相同但“相同位置處有不同類型的參數(shù)”。 編譯器將根據(jù)實際傳入的參數(shù)形式選擇調(diào)用匹配的重載方法。 下面還是舉個例子來說明的好。 例如我們有兩個名為“移動”的方法命令,參數(shù)不一樣,一個方法只有一個參數(shù)是文本型,表示地點,另一個方法有兩個參數(shù)是XY坐標。 公開 類 啟動類 { 公開 靜態(tài) 啟動 () { 好朋友.移動("大連");

24、 好朋友.移動(123,456); } } 公開 類 好朋友 { 公開 靜態(tài) 移動(文本 地點) { 控制臺.輸出行("移動到"+地點); } 公開 靜態(tài) 移動(小數(shù) 坐標X ,小數(shù) 坐標Y) { 控制臺.輸出行("移動到"+坐標X.到文本()+","+坐標Y.到文本()); } } 運行結(jié)果如下: 怎么樣,厲害吧,易飛揚編譯器生成的代碼會自動處理一些事情的,有點智能化哦。實際上將“重載”理解為“重名”就好了。 封裝 講繼承之前要講到封裝的。 封裝聽起來

25、很可怕,其實它什么也不是。就是將類裝在一個盒子里,不可見,外國人以前稱之為黑盒子,現(xiàn)在叫封裝,換湯不換藥而已。 還記得前面說過的類中有不公開的私有成員嗎?這個就是其他人不可見了,就稱之為封裝了。 白皮書中是這樣說的:類可以使用私有成員存儲內(nèi)部數(shù)據(jù),可以使用私有方法對內(nèi)部數(shù)據(jù)進行處理,可以通過公開或擴展的屬性、方法、事件對外界提供操作接口,這些都是類的封裝機制的體現(xiàn)。 也就是你的好朋友自己有五臟六腹,不用你給他就有,他也不會給你看,因為這是他的隱私。但是他有衣服、名字等這些外在的東西你能看到,他會說話,這是他的公開的接口,雖然我們并不了解他的真實想法,這也是一種保護的方法。 具體的例程看

26、前面的沒有公開屬性的類方法命令就行了。 繼承 父母的財產(chǎn)可以由孩子來繼承,父母的基因可以傳承給子女,傳承后可能有些基本的沒有改變,有些就有些改變了。下面是兩個公開類,類名不一樣,但是小汽車是個子類,他的父類就是汽車。汽車可以包含的子類很多,如公交車,卡車等。 下面給出代碼: 公開 類 汽車 { 公開 移動(文本 地點) { 控制臺.輸出行("移動到"+地點); } 公開 移動(小數(shù) 坐標X ,小數(shù) 坐標Y) { 控制臺.輸出行("移動到"+坐標X.到文本()+","+坐標Y.到文本());

27、 } } 公開 類 小汽車 <基類 = 汽車> { 公開 移動(文本 地點) { 控制臺.輸出行("安裝火箭移動到"+地點); } 公開 移動(小數(shù) 坐標X ,小數(shù) 坐標Y) { 控制臺.輸出行("安裝火箭移動到"+坐標X.到文本()+","+坐標Y.到文本()); } } 調(diào)用的代碼為以下: 公開 類 啟動類 { 公開 靜態(tài) 啟動 () { 汽車 奇瑞 = 創(chuàng)建 汽車; //汽車 奇瑞 = 創(chuàng)建 小汽車;

28、 奇瑞.移動("大連"); 奇瑞.移動(123,456); } } 大家可以看到,上述代碼中 如果將第一行的創(chuàng)建代碼屏蔽,與將第二行的創(chuàng)建代碼屏幕后的執(zhí)行效果是不一樣的。因為小汽車繼承了父類汽車的兩個方法,因此根據(jù)創(chuàng)建時的不同,運行效果也就不一樣了。 這個哪里運用最多呢?這樣有什么好處呢? 1.原來,可以將一些類封裝為類庫,然后公開接口,如果你對某個類不滿意,你就可以繼承他的類,原始的類庫不用更改。 2.也方便大型軟件的共同開發(fā),架構(gòu)師將父類全部定義好,即使是空的沒有代碼的也無所謂了,然后由下面的工程師制作子類繼承,將真實的代碼寫入。 3.

29、改進軟件也成為一件非常方便的事,如果某個類中的功能不適合使用了,需要升級了,就可以再一次地繼承他,方便了程序的升級。 多態(tài) 多態(tài)實際上是與對象緊密相聯(lián)系的。在類中,可以創(chuàng)建一個方法,如果這個方法中采用了對象作為參數(shù),那么如果對象傳遞時是基類,那么就按基類進行處理,如果對象傳遞時是子類,那么就按子類進行處理。 大家看下面的代碼: 公開 類 基類 { 公開 輸出() { 控制臺.輸出行("基類"); } } 公開 類 子類<基類="基類"> { 公開 輸出() { 控制臺.輸

30、出行("子類"); } } 上述代碼中有兩個類,一個是基類,一個是子類。那么都有相同的輸出方法,且子類的輸出方法覆蓋了父類的輸出方法。 當創(chuàng)建不同的對象時,那么如果傳遞了這些不同的對象,就會按不同對象進行處理,代碼如下: 公開 類 啟動類 { 公開 靜態(tài) 啟動() { 基類 基類1 = 創(chuàng)建 基類(); 子類 子類1 = 創(chuàng)建 子類(); 測試多態(tài)(基類1); 測試多態(tài)(子類1); } 靜態(tài) 測試多態(tài)(基類 參數(shù))

31、 { 參數(shù).輸出(); } } 上述代碼中,可以看到,加了一個“創(chuàng)建多態(tài)”的方法命令,而這個方法命令的參數(shù)是對象,因此當上述“啟動”方法命令中創(chuàng)建了兩個不同的對象,一個是父對象,一個是子對象,于是在調(diào)用“測試多態(tài)”的靜態(tài)方法時,就根據(jù)不同的對象進行了不同的處理。 接口 “接口” 很簡單,就是這樣一種東西:就是空的方法組成的一個類,打包成類模塊,然后供大家一起調(diào)用。 這個類里的方法中,沒有具體的代碼,就是一個空的表,也可稱之為接口表。類似于C語言中的頭文件。接口具體的好處是在于多人工程開發(fā)時,由系統(tǒng)分析師制定出統(tǒng)一標準的接口,程序師進行具體接口程序的編

32、程,這樣大家在進行大型工程項目時就通過接口進行溝通了。 使用“接口”時要注意以下幾點: 1.接口只“聲明”一個或多個“公開”的方法,但不提供方法的實現(xiàn)代碼。也就是不需要系統(tǒng)分析師寫代碼。 2.定義接口方法時可以省略掉方法的“公開”屬性,編譯器默認其具有此屬性。也就是說系統(tǒng)分析師可以偷一些懶了。 寫接口的格式樣例如下: 公開 接口 接口1 { 公開 接口方法1(); 公開 接口方法2(); } 接口聲明與類聲明是同級別的。 3.只有類可以實現(xiàn)接口。一個類可以實現(xiàn)多個接口。一個接口可以實現(xiàn)多個方法。 4.接口文件編譯為類庫后,由系統(tǒng)分析師提交給程序師

33、具體實現(xiàn),不必提供類庫的源文件。也就是說上述接口定義的代碼保存為EF文件,然后編譯為ECL文件,只要提供程序員ECL文件給他們編程就可以了。 5.接口類似一種“規(guī)范”,如果某個類實現(xiàn)了此接口,表明此類遵循了此規(guī)范,以后就可以按照這種規(guī)范的要求來使用此類。 6.當系統(tǒng)分析師提供類以后,由程序師來實現(xiàn)接口的具體代碼時,要將此接口中的所有方法實現(xiàn),一個也不能少哦,編譯器會做嚴格的檢查。 一個類欲實現(xiàn)某個接口,意味著這個類“必須實現(xiàn)這個接口(及其所有基接口)中聲明的所有方法”。 7.實現(xiàn)接口,就是由程序師具體實現(xiàn)原來接口表中空方法的代碼。那么在定義類時,程序師需要將接口的信息告訴類。 定義類

34、時,通過“接口實現(xiàn)表”屬性來指定該類所實現(xiàn)的接口,示例代碼如下: 類 類1 <接口實現(xiàn)表 = 接口1> //指定單個已實現(xiàn)的接口 { 公開 接口方法1() { //這里需要程序員添加具體實現(xiàn)代碼 } 公開 接口方法2() { //這里需要程序員添加具體實現(xiàn)代碼 } } 類 類2 <接口實現(xiàn)表 = 接口1, 接口2, 接口3> //指定多個已實現(xiàn)的接口 { //...... } 上述代碼中,類1指定了一個接口,類2指定了多個接口,具體的代碼在接口

35、方法中實現(xiàn)。 上述的代碼保存為EF文件后可以進行編譯,在編譯為EXE文件時,會檢查ECL類庫中的接口情況,如果正常,那么對于接口的調(diào)用就相當于對于類中具體實現(xiàn)代碼的調(diào)用。 接口通過“定義接口”、“實現(xiàn)接口”的兩個步驟后,下面就可以進行“使用接口”了。定義接口是由系統(tǒng)分析師進行的工作,實現(xiàn)接口是由程序師進行的工作,一般大的項目就會這樣安排,以利于分工合作,但是如果小的項目一般用不上,即使用上了,上述的也可能是一個人進行的。 例如,在系統(tǒng)核心庫中已有一個現(xiàn)成的接口,并且被編譯為ECL類庫,接口原代碼可能為以下形式:(定義接口) 公開 接口 錯誤處理 { 公開 邏輯 處理錯誤

36、(整數(shù) 錯誤碼, 文本 錯誤文本); } 實現(xiàn)接口的代碼可以寫成以下內(nèi)容: 公開 類 錯誤處理類 <接口實現(xiàn)表 = 錯誤處理> { 公開 邏輯 處理錯誤(整數(shù) 錯誤碼, 文本 錯誤文本) { 控制臺.輸出行("哈哈,系統(tǒng)運行時錯誤被我捕獲?。。?); 控制臺.輸出("錯碼碼"); 控制臺.輸出行(錯誤碼); 控制臺.輸出行(錯誤文本); 返回 真; } } 調(diào)用接口的代碼可以為以下形式: 公開 類 啟動類 { 公開 靜態(tài) 啟動() {

37、 控制臺.輸出行("測試中"); 錯誤處理 自定接口 = 創(chuàng)建 錯誤處理類; 運行環(huán)境.置錯誤管理器(自定接口); 對象 對象1; // = 創(chuàng)建 對象(); 控制臺.輸出行(對象1.到文本()); //故意使用 "空" 對象 } } 當調(diào)用接口的方法時,就相當于調(diào)用了具體對象實現(xiàn)的方法。 其中有兩行大家要注意: 錯誤處理 自定接口 = 創(chuàng)建 錯誤處理類; 運行環(huán)境.置錯誤管理器(自定接口); 上述代碼中可以看到,“錯誤處理類”對象被聲明到“錯誤處理”這

38、個接口中,然后下面一行對接口的操作實際上就是對對象的操作。 總結(jié) 大家也可以先學習舊版易語言中的面向?qū)ο螅仁煜ぶ?,再學習易飛揚就非常輕松了。 對比如下: 面向?qū)ο笠蛩? VB 易語言 易飛揚 構(gòu)造/初始 有 有 有 析構(gòu)/清理 有 有 有 繼承 不支持 有 有 虛擬方法 不支持 有 有 多態(tài) 不支持 有 有 封裝 有 有 有 重載/重名 無 無 有 接口 無 無 有 易語言中的面向?qū)ο蠼滩目梢酝ㄟ^學習《易語言編程系統(tǒng)》第十八章,或“易語言知識庫ESDN→資料手冊→開發(fā)手冊→易語言面對對

39、象編程”中可以找到。 看教材的目的就是要實用,那么上述用了好朋友進行比喻,如果應(yīng)用到實際程序中將會如何呢?你要將你的數(shù)據(jù)庫系統(tǒng)用分類的方法進行分門別類,如菜單類,快捷鍵類,數(shù)據(jù)庫操作類……這樣,一個具有人性化的程序就會出來了,里面的命令程序只要按面向?qū)ο蟮姆椒ㄕ{(diào)用就行了。 好了,大話面向?qū)ο蟮酱藭焊嬉欢温?,希望通過這些小小的比喻大家能了解掌握面向?qū)ο蟮闹R,逐步看一些大一些的面向?qū)ο蟮睦?,看的時候大家可以將這些大例程中的對象用概念圖畫出他的層次結(jié)構(gòu),互相之間的繼承關(guān)系,以這樣的方式對對象進行研究,這樣基本上就能看明白了。 最后要告訴大家的是,我還會寫更多的教材和練習給大家看,畢竟在

40、大量的練習下才會有長足的進步。 面向?qū)ο蟛⒉浑y, 細細品味易飛揚, 道法自然是根本, 編程世界誰稱王! 第8章 易語言的子程序 本章主要介紹易語言子程序的創(chuàng)建和調(diào)用、子程序參數(shù)的使用以及參數(shù)屬性的設(shè)置方法。 本章學習內(nèi)容: 8.1 新建子程序 8.6 參數(shù)的參考屬性 8.2 調(diào)用子程序 8.7 子程序的返回值 8.3 兩類子程序的區(qū)別 8.8 課后練習 8.4 子程序參數(shù)

41、 8.5 參數(shù)的可空屬性 將程序分割成較小的功能單元就可以簡化程序設(shè)計任務(wù),這些功能單元被稱為子程序,可以把共享的或常調(diào)用的功能置于子程序中,達到簡化程序設(shè)計、方便代碼重用和提高程序維護效率的目的,這是結(jié)構(gòu)化程序設(shè)計的主要特征之一。 · 子程序可把程序劃分成相對獨立的功能單元,每個單元都比無子程序的整個程序容易調(diào)試和理解; · 一個應(yīng)用程序中的子程序,往往不必修改或只需稍作改動,便可以成為另一個程序的子程序。 8.1 新建子程序 下面我們就開始新建第一個自定義子程序。方法十分簡單,一步一步跟我來

42、吧! ①首先在啟動窗口添加一個按鈕,默認名稱為“按鈕1”。雙擊按鈕1進入代碼編輯界面。 另一種更快捷的方法是,在代碼編輯區(qū)獲得焦點時,同時按下“Ctrl 鍵”和“N鍵”,也可以新建子程序。 ②將光標移到代碼編輯行,右鍵單擊,在彈出菜單中選擇“新子程序”命令,就可以新建子程序。 新建子程序的默認名稱為“子程序1”,依此類推。 第三種方法,到主菜單上。選擇“插入” “新子程序”命令也可新建子程序。 “子程序1” 已經(jīng)存在,當另一個子程序被修改成“子程序1”

43、時,易語言彈出出錯提示。 注意: 在同一個程序集中,子程序名不能重復。特別在修改的時候,易語言會提示并修改已經(jīng)被使用過的名稱。 被易語言修改的子程序名。 新建的子程序沒有參數(shù),這需要操作者自行添加所需數(shù)目的參數(shù)并設(shè)置參數(shù)的類型以及參數(shù)的可空、參考和數(shù)組等屬性。 特別應(yīng)該注意的是,每個新建的子程序都不會被易語言或其它子程序自動調(diào)用,下面將講解如何調(diào)用子程序。 8.2 調(diào)用子程序 前一節(jié)中講了如何建立子程序,下面演示如何調(diào)用一個子程序。

44、①在“_按鈕1_被單擊”事件子程序中添加程序代碼 “ 子程序1() ”或直接復制名稱,將其粘貼過來。 ②在“子程序1”中添加代碼:信息框(“你好!我是信息框?!?,#信息圖標,) 同一個子程序可以被多次調(diào)用。 ③在“按鈕2”事件子程序中添加代碼‘ 子程序1() ’。 ④按F5鍵運行程序,分別單擊“按鈕1”和“按鈕2”,都能彈出“子程序1”里的信息框。 一個子程序可以在事件子程序和其它新建的子程序中多次被調(diào)用,也可以被其它程序集的事件子程序和新建的子程序調(diào)用。要注意的是,在本程

45、序中定義的子程序只能在本程序中使用。 每次調(diào)用子程序時,子程序中的所有命令都將從第一條開始順序執(zhí)行,當執(zhí)行到子程序尾部或者遇到“返回”命令時即返回到調(diào)用此子程序命令的下一條命令處。 這里的“子程序1”同時被修改為‘信息框子程序’。 ①把“子程序1”修改為“信息框子程序”。 上節(jié)中提到了子程序名稱的問題,這里我們還要提一個小建議。當要修改一個子程序名稱時,應(yīng)該直接到這個子程序的定義位置進行修改。這樣可以使調(diào)用它的程序代碼同步修改該子程序的名稱,如上圖所示。這可以避免因調(diào)用無效子程序?qū)е碌木幾g錯誤。

46、 大家可以看到,子程序必須由其它子程序調(diào)用才能被執(zhí)行。子程序的調(diào)用方法與命令的調(diào)用方法完全一致。

47、

48、 8.3 兩類子程序的區(qū)別 雖然新建的子程序(自定義子程序)和事件子程序的調(diào)用方法一樣,但它們之間也有一些不同之處。

49、 ②輸入?yún)?shù)名稱并設(shè)置類型。最后按F5鍵運行程序,單擊“按鈕1”,信息框不見了。 這是“_按鈕1_被單擊”子程序的原型,沒有參數(shù)。 ①光標選中子程序名稱,按Enter鍵添加一個參數(shù)。 信息框看不到的原因是“_按鈕1_被單擊”子程序參數(shù)結(jié)構(gòu)被改變,易語言就會把它當作新建的子程序,和“按鈕1”沒有任何聯(lián)系了,而新建子程序可以任意的添加參數(shù)。請大家自行總結(jié)一下新建的子程序和事件子程序的區(qū)別。 8.4 子程序參數(shù) ??? 參數(shù)和變量的使用方法一樣,可以使用賦值語句在參數(shù)內(nèi)臨時存儲

50、數(shù)據(jù)。參數(shù)有參數(shù)名(用來在程序中引用一個參數(shù))、數(shù)據(jù)類型(確定參數(shù)能夠存儲數(shù)據(jù)的種類)以及“可空”和“參考”等屬性。參數(shù)只能在定義它的子程序中使用,相當于局部變量。 ①把8.3中“_ 按鈕1_被單擊”事件子程序的“參數(shù)1”刪除。 參數(shù)的“類型”屬性可為空。如果空,默認為整數(shù)型。 ②在“信息框子程序”添加兩個文本型參數(shù)“參數(shù)1”和“參數(shù)2”。 ③按F5鍵,程序無法運行,在輸出面板中可以看到出錯提示。這就說明我們還要在調(diào)用上述子程序時提供具體的參數(shù)。

51、 ④用光標選中此行并雙擊,在括號內(nèi)添加“,”號,按Enter鍵。 ⑤看到了嗎?調(diào)用子程序的命令前多了個“+”號,我們可以將它展開。 展開的方法:直接雙擊或用鍵盤上的右光標鍵。 標簽的標題在此處設(shè)置。 參數(shù)提示和實際參數(shù)的內(nèi)容是互相對應(yīng)的,在上面添加文本型數(shù)據(jù)“易語言”,當程序運行時,下面“參數(shù)1”保存的數(shù)據(jù)就是“易語言”。 ①接下來我們在程序中為子程序提供具體的參數(shù)數(shù)據(jù)。用“Ctrl+Tab”組合鍵切換到界面設(shè)計狀態(tài),在窗體上添加兩個標簽和兩個編輯框

52、,并將標簽的標題屬性設(shè)置為“輸入123”,提示用戶。 這是前面提到的“按鈕1”,下面的是“按鈕2”。 ②切換到代碼編輯狀態(tài),在子程序調(diào)用處,分別為兩個參數(shù)提供數(shù)據(jù)(編輯框提供的文本型數(shù)據(jù))。 ③修改“信息框子程序”代碼。 ④按F5鍵運行程序,在“編輯框1”和“編輯框2”中輸入“123”,單擊“按鈕1”,第一個信息框被彈出。你也可以輸入其它的數(shù)據(jù),看一看效果。 子程序如需要接收參數(shù)數(shù)據(jù),必須先在子程序定義處的參數(shù)表部分定

53、義所需的參數(shù)。調(diào)用有參數(shù)的子程序時所傳遞過來的數(shù)據(jù)將被順序地填入對應(yīng)的參數(shù)中。如果傳遞過來的數(shù)據(jù)與對應(yīng)位置處的參數(shù)數(shù)據(jù)類型不一致,在可以互相轉(zhuǎn)換時,系統(tǒng)將自動將傳遞過來的數(shù)據(jù)轉(zhuǎn)換成對應(yīng)參數(shù)的數(shù)據(jù)類型后再賦值給該參數(shù);如果不能轉(zhuǎn)換,就會產(chǎn)生運行時錯誤。如上面的第 2 步在調(diào)用子程序的同時就把“編輯框1.內(nèi)容”和“編輯框2.內(nèi)容”作為參數(shù)數(shù)據(jù)對應(yīng)地傳遞到了編輯框子程序內(nèi)的兩個參數(shù)“參數(shù)1”和“參數(shù)2”內(nèi)。 8.5 參數(shù)的可空屬性 參數(shù)可空,就是說該參數(shù)是可選的,從字面上就能理解它的意思。就是在調(diào)用子

54、程序時,可以不提供該參數(shù)所需的數(shù)據(jù)??纯聪旅娴睦?。 ①將“參數(shù)2”可空屬性選中。方法是,選中該處單元格再單擊或選中后按空格鍵。 ②把調(diào)用處的“參數(shù)2”刪除。 如果某個參數(shù)的“可空”屬性為真,那么在調(diào)用本子程序時,可以不給此參數(shù)傳遞數(shù)據(jù)??煽盏膮?shù)主要用于支持具有默認值的參數(shù);另外,如果給某個子程序添加了新參數(shù)卻又不想去更改以前調(diào)用此子程序的代碼,那么只要將新參數(shù)設(shè)置為可空參數(shù)就行了。 8.6 參數(shù)的參考屬性 打個比方,你家的門鎖有兩把鑰匙,分

55、別由兩個人拿著。不管是哪一個人都可以打開房門,改變家里家具的擺放位置。如果子過程的參數(shù)具有“參考”屬性,那么,當調(diào)用子程序時負責提供該參數(shù)數(shù)據(jù)的是一個變量的話,在子程序中修改了該參數(shù)的值,那個變量的值也會跟著被改變。 ①在“_按鈕1_被單擊”事件子程序中添加兩個局部變量。 ②把編輯框提供的文本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。 注意: 文本型數(shù)據(jù)默認具有參考屬性,所以此例中為了演示參數(shù)的參考屬性,把文本型數(shù)據(jù)轉(zhuǎn)換到整數(shù)型。 ③添加信息框,顯示調(diào)用子程序后,“變量2”的值。

56、 ④將“信息框子程序”兩個參數(shù)的類型改為整數(shù)型。 ⑤添加代碼,修改“參數(shù)2”的值。 注意: 為了更好地了解程序的運行過程,可以通過在關(guān)鍵代碼行前設(shè)置斷點的方法來跟蹤代碼行的執(zhí)行情況。 ⑥在代碼行前設(shè)置斷點。 設(shè)置斷點的方法:用光標選中將被設(shè)置斷點的代碼行,再按F9鍵。 ⑦按F5鍵運行程序,在啟動窗口的編輯框中輸入“123”,單擊“按鈕1”。 窗口消失,程序停止,一個斷點變黃。這就說明在“_按鈕1_被單擊”事件子程序中,第一個斷點處的“信

57、息框子程序”將被執(zhí)行。 “參數(shù)2”的值被改變。 “參數(shù)1”的值是“變量1”的值。兩個條件都成立。 再按F5鍵,“信息框子程序”里的代碼被執(zhí)行。說明子程序已經(jīng)被調(diào)用。 再按F5鍵,斷點變?yōu)榧t色,彈出條件成立的信息框。 ⑧單擊“確定”按鈕。 程序又跳到了“信息框子程序”被調(diào)用處的下一行代碼處,說明“信息框子程序”執(zhí)行完畢。 再按F5鍵,彈出“_按鈕1_被單擊”事件子程序中的信息框。 由于運行開始時“編輯框1”內(nèi)的數(shù)據(jù)為空文本,轉(zhuǎn)換到整數(shù)后為“0

58、”。 即使“參數(shù)2”的數(shù)據(jù)被改變,“變量2”仍保存原值。 “參數(shù)2”沒有設(shè)置參考。 ⑨單擊“確定”按鈕,代碼運行結(jié)束。關(guān)閉程序,然后設(shè)置“參數(shù)2”的參考屬性,設(shè)置“參數(shù)2”的參考屬性的方法類似可空屬性的設(shè)置,在參數(shù)定義表“參考”欄相應(yīng)空格內(nèi)單擊使之出現(xiàn)一個“√”號。 按F5鍵運行。最后信息框顯示“變量2”的值和“參數(shù)2”的值是相同的。 當使用變量向子程序的參數(shù)傳遞數(shù)據(jù)時,如果所傳遞過來的變量為數(shù)組、用戶定義數(shù)據(jù)類型、庫定義數(shù)據(jù)類型、字節(jié)集型或文本型,則無論參數(shù)的“參考”屬性是否為真,都將是傳遞變量的指針(即該變量的內(nèi)存地址),這

59、樣在子程序中改變該參數(shù)的值時相應(yīng)變量的值也會被改變;如果所傳遞過來的變量類型與相應(yīng)參數(shù)的數(shù)據(jù)類型不一致但可以相互轉(zhuǎn)換,譬如將整數(shù)型變量傳遞到小數(shù)型的參數(shù)時,則在數(shù)據(jù)被實際傳遞前,系統(tǒng)將首先自動將整數(shù)型變量的值轉(zhuǎn)換為小數(shù)型數(shù)據(jù),然后再進行傳遞,在這種情況下,即使參數(shù)的“參考”屬性為真,系統(tǒng)也無法傳遞指向原變量的指針,只能傳遞經(jīng)過類型轉(zhuǎn)換后的變量的值。如果系統(tǒng)將數(shù)據(jù)指針成功地傳遞過來,那么在子程序中對此參數(shù)內(nèi)容的更改將會相應(yīng)地反映到調(diào)用子程序時負責提供相應(yīng)參數(shù)數(shù)據(jù)的變量上。 8.7 子程序的返回值 子程序可以返回數(shù)據(jù),稱為返

60、回值,但必須首先定義返回值的類型,并且要在子程序中使用“返回”命令進行返回。 ①將“信息框子程序”的返回值類型設(shè)置為整數(shù)型。 ②刪除下面兩行代碼。 參數(shù)2 = 123 信息框 (“參考的使用方法?!?+ #換行符 + “變量2==” + 到文本 (變量2), 0,) ③在“_按鈕1_被單擊”事件子程序中添加名稱為“返回值”的整數(shù)型變量。 ④“返回值”變量用來保存“信息框子程序”返回的整數(shù)型數(shù)值。 ⑤在“信息框子程序”的每個分支處添加返回命令。

61、 ⑥將“信息框子程序”里的兩個“信息框”命令復制到“_按鈕1_被單擊”子程序的判斷語句中。 ⑦最后按F5鍵運行程序。 調(diào)用一個子程序時,子程序中的所有命令將從第一條開始順序執(zhí)行,當執(zhí)行到子程序尾部或者遇到“返回”命令時即返回到調(diào)用此子程序命令的下一條命令處。當一個子程序有返回值時,如果需要使用該返回值,可以把子程序調(diào)用命令嵌在其它命令中,如“變量1=變量2+子程序名(參數(shù)…)+變量3”(這里假設(shè)“子程序名(參數(shù)…)”有返回值),也可以建立一個與該返回值數(shù)據(jù)類型相同的變量來接收該返回值,即使用“變量名=子程序名(參數(shù)…)”的形式(“=”在

62、這里是賦值號)。 8.8課后練習 (1)練習子程序的建立與調(diào)用。 ①新建“Windows窗口程序”添加一個按鈕。 ②添加如圖上的代碼。 完成后運行一下程序看看。 這兩個地方添加什么值,才可以使程序運行,并且能夠正確顯示呢?請大家來將這兩個命令補充完整。 (2)練習編寫用子程序的方式表示兩數(shù)相加,返回和的例程。 , ①新建易程序,放兩個編輯框組件與一個按鈕組件,雙擊按鈕組件,進入程

63、序代碼界面。 ②新建一個子程序,名稱為:“和是幾”。加入兩個數(shù)。參數(shù)類型為整數(shù)型。返回值類型為整數(shù)型。 ③在“_按鈕1_.被單擊”事件子程序下輸入以下程序代碼: 信息框 (和是幾 (到數(shù)值 (編輯框1.內(nèi)容), 到數(shù)值 (編輯框2.內(nèi)容)), 0, ) 在“和是幾”子程序下輸入以下程序代碼: 返回(數(shù)1+數(shù)2) 最后按F5鍵運行程序看看。 (2)用子程序的方式編寫判斷兩個數(shù)大小的程序,并返回最大數(shù)。 ①新建易程序,放兩個編輯框組

64、件與一個按鈕組件,雙擊按鈕組件,進入程序代碼界面。 在“_按鈕1.被單擊”子程序下輸入以下程序代碼: 信息框 (和是幾 (到數(shù)值 (編輯框1.內(nèi)容), 到數(shù)值 (編輯框2.內(nèi)容)), 0, ) 在“和是幾”子程序下輸入以下程序代碼: 如果 (數(shù)1 > 數(shù)2) 返回 (數(shù)1) 否則 返回 (數(shù)2) 如果結(jié)束 最后按F5鍵運行程序。大家再留意一下,“如果”命令還有這種形式的,這種形式的“如果”命令雖然占的代碼行稍多,但邏輯很清晰,提倡大家以后在使用“如果”命令時多使用這種形式。 ②新建一個子程序,名稱為:“誰最大”。加入兩個數(shù)。參數(shù)類型為整數(shù)型。返回值類

65、型為整數(shù)型。 第2章 編程的基礎(chǔ)概念 在本章中,將講到編程的一些基礎(chǔ)知識,包括變量的概念,變量的有效范圍,數(shù)據(jù)類型等知識。 其后,本書將引導您編寫一個自己的MP3播放器,認識窗口、按鈕、編輯框三個常用組件以及命令及事件子程序。 本章學習內(nèi)容: 2.1 編寫第二個程序 2.6 編寫一個MP3播放器 2.2 什么是變量與常量 2.7 認識窗口、按鈕、編輯框 2.3 變量的數(shù)據(jù)類型 2.8 認識事件子程序 2.4 變

66、量的有效范圍 2.9 認識組件的方法 2.5 變量的初始值 2.10 課后練習 大家會說1+2等于幾太簡單了,這個例程雖然簡單,但這是為以后進行復雜一些的計算作準備,所以我們先用最簡單的例子來演示,大家只要學會寫這個小程序,再遇到復雜一些的計算,就可以自己寫了。 那么如何用易語言實現(xiàn)1+2的計算呢,大家就跟著下面的步驟來吧。 2.1 編寫第二個易程序 ①首先啟動易語言。點擊“編輯框”組件。 ②用鼠標在窗體上拖動畫出一個編輯框組件。名稱為“編輯框1”。 ③點擊“按鈕”組件。 ④在窗體上拖動鼠標畫出一個按鈕組件。名稱為“按鈕1”。 ⑤在屬性面板中找到按鈕的標題屬性,將標題內(nèi)容改為“計算1+2=?”。 ⑥大家可以看到按鈕組件的標題被更改了,大家再雙擊按鈕組件,進入程序代碼設(shè)計界面。 大家可以看到系統(tǒng)已自動生成一個名稱為“_按鈕1_被單擊”的

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

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

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


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