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

《面向對象編程》教學設計大綱

上傳人:文*** 文檔編號:87349071 上傳時間:2022-05-09 格式:DOC 頁數:194 大?。?.54MB
收藏 版權申訴 舉報 下載
《面向對象編程》教學設計大綱_第1頁
第1頁 / 共194頁
《面向對象編程》教學設計大綱_第2頁
第2頁 / 共194頁

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

40 積分

下載資源

資源描述:

《《面向對象編程》教學設計大綱》由會員分享,可在線閱讀,更多相關《《面向對象編程》教學設計大綱(194頁珍藏版)》請在裝配圖網上搜索。

1、易飛揚面向對象編程易飛揚面向對象編程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總結19由于“易語言.飛揚”還未完全成型,在此過程中如果有所改動,教材也會相應的改動,但是對于面向對象的編程來說,基本上是不會變的,因此本書作者才有信心將面向對象的編程方法寫出來。之所以本書的名稱中有“編程思想”一樣,我們不是為了編程而去編程,那種整天加班,一天到晚累得半死的生活并不是我們這些程序員理想中的生活,對于工作與生活的態(tài)度,也影響到我們編程中去,如何仿照自然的方法去編程,去生活同樣具有重要的意義。那么什么是“對象”

2、呢?這個問題一直困擾著很多編程的入門者,有說對象就是組件,有說對象就是類的實體化,雖然我不反對用這些術語,但我反對讓初學者搞不明白,實際上,“對象”就是你的一個好朋友,這個好朋友的功能強大,能夠幫助你完成你所設計的事情,那么,下面我們就介紹一直在你身邊的這個好朋友吧。分類物以類聚,人以群分,朋友也是這樣,如果你交個好朋友,那么就會受益無窮,如果你交了個損友,那么后果不難想象,所謂近墨者黑,近朱者赤,君子之交淡如水,也就是說交一些具有平常心的朋友,不會讓你去冒險,不會讓你心煩意亂。好了,想法是好的,那么就會去找,如果真的找到了,那么就恭喜你,如果找不到,也不必傷心。那么我們理想中的好朋友就是對象

3、,而真實的好朋友就是對象的實體,我們把他們分為一類人“好朋友”,還有就是“普通朋友”、“同事”、“老師”、“陌生人”等。通過以上,可以了解到面向對象編程中“類”與“對象”的關系?!邦悺毕喈斢凇昂门笥选薄ⅰ捌胀ㄅ笥选?、“同事”、“老師”、“陌生人”等這些思想的劃分,而具體的某個人就是類的“實際對象”。理想中的好朋友具有相關的特性,比如有身高,年紀,性格等信息,也可以在人生的道路上幫助你成長。在面向對象中,把“相關特性”稱為“數據成員”,雖然聽起來很奇怪,但大家只要了解到,與老易語言中的屬性是差不多的。在面向對象中,把“功能”稱為“方法”,雖然聽起來很奇怪,但大家只要了解到,與老易語言中的方法命令

4、是差不多的。下面就來看第一個易飛揚類的代碼吧。上述代碼中,控制臺就是一個對象,也是你的好朋友,他具有“輸出行”這樣的方法命令,后面所接就是他的參數:“輸出的文本”。而“輸出的文本”是在上一行中進行了定義的,是一個文本變量,并且內容是“易語言,你好!”,這樣一想,這個具體的好朋友還沒有分類呢,于是將這個好朋友分為“啟動類”,這個行為作為“啟動類”的一個“啟動”方法去執(zhí)行。啟動上面已經說過了,在上述這段代碼中,有一個類“啟動類”,這是我們對好朋友的劃分,在該類中有一個方法“啟動”方法,這是好朋友能做的事情?;ɡㄌ柪锩娴拇a就是事情的具體步驟。好了,上述代碼是可以執(zhí)行的,大家還記得如何運行嗎?不會的

5、請看本書第一章節(jié)中的內容。在易飛揚中,程序的運行要依賴一個很重要的類它的類名為“啟動類”。在“啟動類”的下面有一個必有的方法“啟動”方法,用法如其名,該方法是易飛揚程序的入口,也就是說,易飛揚的程序要從這個方法下面的代碼進行運行。大家可以把這個“啟動”方法看成是老易語言中的“_啟動子程序”子程序。這樣大家就可以很容易的看懂上面的代碼了。注意了,“啟動類”必須是“公開”的;而“啟動”方法必須是“公開”且“靜態(tài)”屬性。大家先不要管什么是“公開”、“靜態(tài)”,只要記下來就好了,繼續(xù)看下面的文字吧。在“啟動”方法中的代碼,相信大家也能理解到了,是用控制臺輸出一行文字,文字的內容是“易語言,你好!”。不管

6、如何,大家跟我學編程,我是不會虧待大家的,給大家一個小詩來說明我的歸納結果,大家有空就將這個口訣背下來哦,當出現對好朋友不理解時,只要背一下這個小詩,就基本上能解決問題了??谠E一:面向對象靠分類;聲明類有屬性表。公開大家都能用;私有隱藏保安全。內部靜態(tài)調靜態(tài);外部類名加成員。非靜創(chuàng)建類對象;對象名加類成員。面向對象靠分類;(面向對象中由類組成基本單位,一個類中有多個方法)聲明類法有屬性。(類有類的屬性表,方法有方法的屬性表)內部靜態(tài)調靜態(tài);(在內部(類中)靜態(tài)成員只能被靜態(tài)成員所調用;)外部類名加成員。(而在外部(類外),只能通過“類名.”加成員名的方法進行調用。)非靜創(chuàng)建類對象;(“非靜態(tài)”

7、成員的使用方法是:用類生成的“對象名”“.”類成員)對象名加類成員。(同上)公開大家都能用;(具有公開屬性的類或方法,在其他的類或方法中可以直接調用,“公開”就是可被調用,其方法的引用就是類名+方法名即可。)私有隱藏保安全。(私有屬性只是為了安全考慮,不向其他程序員公開,因此使用時只能在類的內部使用)難免本文還是要先來說明一下這些類或類成員名稱前面的這些名詞是做什么用的。公開面向對象靠分類;聲明類有屬性表。公開大家都能用;私有隱藏保安全。私有了解“公開”與“私有”哈哈,現在的人都是說自己有人權保護的,因為每個人都有自己的隱私,你的好朋友也不例外,當你的好朋友出現在你面前時,他公開了他的形象和語

8、言,以及行為,但他回家后,是自己會吃飯、睡覺等,這些是不會公開給你看的哦。這樣的好處是,你的好朋友不會隨時公開他的行為,他就具有自主性,自動性,對他也是個保持哦。在面象對象中也是這樣,當公開時,其他人都是可視的可調用的,但也設置一個“私有”屬性,對這個類進行保護,保護的重要意義在于,這些都是內部的工作,自動完成的,不需要其他人為的干涉,否則就是干涉內政,或干涉別人的隱私羅。無論類、還是類中方法與屬性,都可以設定它對外部是否可見,這個“可見”便是在被外部應用時是否可被調用。“公開”就是可被調用,而“私有”則不能。私有是面向對象中的一個重要工具,用于保護一些不想被外部調用的功能實現,保證安全性。靜

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

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

11、果我們改為以下的調用方式,就又可以進行正常的編譯運行了:上述代碼中,用好朋友這個類,生成了一個新的對象“張三”,由于張三已成為好朋友的一個具體的對象,因此使用此對象調用這個類中的方法命令“說話”和“行走”。而大家在實際編程中,可以將方法命令換成你想要操作的其他功能,如建立菜單,打開窗口,處理數據等,也就實現了你的面向對象的程序了?!胺庆o態(tài)”成員的使用方法是:用類生成的“對象名”“.”類成員其中“類成員”可以是非靜態(tài)的數據和非靜態(tài)的方法命令。對象下面大家可能會產生個疑問,一是在類的內部調用非靜態(tài)方法命令時,是否也需要先聲明一個對象呢?解決疑問的方法是自己動手,寫幾個不同的例子,用易飛揚編譯后來驗

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

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

14、實現面向對象的編程了。當然,繼續(xù)了解了下的事物對編程更加有用。初始實際上“初始化”是一個特殊的類方法命令,類似于老易語言的“_初始化”子程序,希望你對老易語言中的面向對象有所了解。也就是說:當一個類的對象被創(chuàng)建時,“初始化”方法被自動調用;這個初始化方法可以不寫,如果寫了就會被首先執(zhí)行,一般來說,這是用于對類的創(chuàng)建時的預置環(huán)境用的,相當于一個配置工具。我們用易語言不是也要配置一些東西,自己習慣的東西嗎,致于您要配置什么,就根據需要寫什么吧。我們選朋友時也是這樣,需要一定的標準,適合的朋友才選擇,不適合的朋友就選離,所謂“君子務本,本立而道生。”“初始化”必須是非“靜態(tài)”的、非“私有”的、無返回

15、值的類成員方法,可以沒有參數或有多個參數,允許被重載。“靜態(tài)初始化”方法必須是“公開”的、“靜態(tài)”的、無返回值且無參數的類成員方法。 以上所有方法均可以被省略,如果被省略,易語言編譯器會自動生成其默認實現。也就是默認有一個空的初始化方法存在,任務是什么也不做。編譯器在編譯具有基類的類的任一初始化方法之前,如果發(fā)現該初始化方法中不存在“調用其基類初始化方法的語句”,將自動在首部插入一條調用其基類默認初始化方法(即無參數的初始化方法)的語句,以確保基類的初始化方法被調用。 清理實際上“清理”是一個特殊的類方法命令,類似于老易語言中的“_銷毀”子程序。也就是在類結結果束前進行一些清理的工作。比較安慰

16、的是,易飛揚具有內存自動清潔功能,否則在這一步將要大家花費大量的時間進行內容的清理工作。如果大家不寫這個類方法,默認是自動產生一個空的清理方法,當然是什么也不做啦。不過中國人交朋友都是有始有終的,也稱之為善始善終。既然有出生、相遇,就有分別、死亡,這是萬世不滅的道理。“清理”必須是“公開”的、非“靜態(tài)”的、無返回值且無參數的類成員方法。系統(tǒng)在調用類的“清理”方法之后,總是會調用其基類的“清理”方法。這是一個遞歸過程,最終的結果是,該類的最基礎類(系統(tǒng).對象)的“清理”方法被最后調用。屬性在成員中實際上已講了一些屬性的概念,那是成員屬性,相當于老易語言中組件的屬性。在此還要講的是“屬性方法”,在

17、易語言的使用中,大家一定是非常羨慕組件中的屬性不僅可以賦值,還可以讀取吧,現在你也可以了。下面給出一個例子:在上述代碼中,“易語言用戶”類設置了一個“年齡”屬性方法,用于返回屬性值,第二個帶有整數參數的“年齡”屬性方法,用于接受屬性的賦值。啟動類中,讀取屬性的值,實質上是調用屬性讀取方法;對屬性賦值,實質上是調用屬性設置方法。怎么樣,你也可以制作屬性了吧。事件大家還記得在老版易語言中,那個按鈕被單擊事件,按鈕被雙擊事件嗎?這是大家很羨慕的一件事吧,您可能一直在想,怎么我做不了這種事件呢?從我的角度來看,這個就是一個特殊的方法,這個方法有特別的規(guī)定??纯聪旅嬉粋€事件子程序的代碼:上述代碼中,大家

18、可以看到,在聲明的部分,只是比普通的方法多了“事件接收”字樣,在后面的參數中“被單擊事件”去除事件兩個字后,“_被單擊”拿到了前面與組件相接,形成事件名稱。在老版易語言中也是規(guī)定好的“_按鈕_被單擊”事件是固定不變的,如果變了就不起作用了,在這里也是這樣的,如果不按規(guī)定寫,就不會與事件的產生起作用了。換句話說,對組件的事件處理是通過匹配這些文本后進行相應的處理的。有個例子是說明了這個問題的。就是帶窗口的計算器的例子,這個例子對每個按鈕被按下的事件進行了處理。寫到這里,提醒大家的事,這個易飛揚還沒有完全成型,因此語法還在改之中,原來稱“事件”,后改為“事件接收”,最新改為“事件處理”,這個大家要

19、理解哦,每次更改都是為了精益求精。創(chuàng)建前面我的描述都是太簡單了,現在開始,我還是要將正統(tǒng)的面向對象的概念介紹給大家?!爸剌d”、“封裝” 、“繼承”和“多態(tài)”這些都是非常重要的。在面向對象中有一句老話:“萬物皆對象”,這句話并不高深哦,有些類似于物理上常用的“萬物都有原子組成”,哈哈,看到這里,大家也就可以理解了,如果想要編程的話,那么將所有操作的窗口、組件、單元都看成一個對象,然后對這個對象進行操作就好了呀,編程的思路會更加清晰的。創(chuàng)建其實前面例子中大家都用過了,類似于用“對象類的名字”后接空格和“你取的新生成對象的名字”后接“”等于號加上“創(chuàng)建”關鍵字及“對象類的名字”。白皮書中介紹的語法:

20、 創(chuàng)建 類名稱(參數表) 編譯器將根據參數表自動搜尋并調用合適的“初始化”方法。 創(chuàng)建類的對象,會導致該類及其所有基類中的“初始化”方法被調用。最基礎類(系統(tǒng).對象)的“初始化”方法被最先調用,該類自身的“初始化”方法被最后調用。如果其中某個類有多個重載的“初始化”方法,編譯器將根據規(guī)則選擇其中之一調用。 示例: 對象 對象1 = 創(chuàng)建 對象;學生對象 張三 = 創(chuàng)建 學生對象(張三);銷毀用戶不需要關心對象何時被銷毀以及如何銷毀。這完全是“垃圾收集器”的工作。 在對象被銷毀之前,其“清理()”方法會被系統(tǒng)調用。用戶可在此方法中做一些處理,但這種需求并不多見。重載那么對于一個類中的方法命令,如

21、果重名了,就是“重載”。這個問題的由來類似于中國人口那么多,那么叫“王強”、“趙軍”的不計其數,這個就是重名了,但人還是不一樣的,因為那么多人不可能是一個人吧?,F在好了,在編程中,于一類的事物可以只取一個名字,而參數不同就可以進行處理了,這樣不僅可以節(jié)約名稱(有意義名字總有用完的一天),還可以讓系統(tǒng)去自動根據參數的不同來進行處理。很強的功能哦。在一個類中,如果多個方法(不包括基類中的方法)具有“相同的方法名稱和不同的參數形式”,那么稱這個方法名稱被“重載”。 “不同的參數形式”意味著:參數個數不同,或參數個數相同但“相同位置處有不同類型的參數”。 編譯器將根據實際傳入的參數形式選擇調用匹配的重

22、載方法。下面還是舉個例子來說明的好。例如我們有兩個名為“移動”的方法命令,參數不一樣,一個方法只有一個參數是文本型,表示地點,另一個方法有兩個參數是XY坐標。公開 類 啟動類 公開 靜態(tài) 啟動 () 好朋友.移動(大連); 好朋友.移動(123,456); 公開 類 好朋友 公開 靜態(tài) 移動(文本 地點) 控制臺.輸出行(移動到+地點); 公開 靜態(tài) 移動(小數 坐標X ,小數 坐標Y) 控制臺.輸出行(移動到+坐標X.到文本()+,+坐標Y.到文本(); 運行結果如下:怎么樣,厲害吧,易飛揚編譯器生成的代碼會自動處理一些事情的,有點智能化哦。實際上將“重載”理解為“重名”就好了。封裝講繼承之

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

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

25、制臺.輸出行(安裝火箭移動到+坐標X.到文本()+,+坐標Y.到文本(); 調用的代碼為以下:公開 類 啟動類 公開 靜態(tài) 啟動 () 汽車 奇瑞 = 創(chuàng)建 汽車; /汽車 奇瑞 = 創(chuàng)建 小汽車; 奇瑞.移動(大連); 奇瑞.移動(123,456); 大家可以看到,上述代碼中如果將第一行的創(chuàng)建代碼屏蔽,與將第二行的創(chuàng)建代碼屏幕后的執(zhí)行效果是不一樣的。因為小汽車繼承了父類汽車的兩個方法,因此根據創(chuàng)建時的不同,運行效果也就不一樣了。這個哪里運用最多呢?這樣有什么好處呢?1原來,可以將一些類封裝為類庫,然后公開接口,如果你對某個類不滿意,你就可以繼承他的類,原始的類庫不用更改。2也方便大型軟件的共

26、同開發(fā),架構師將父類全部定義好,即使是空的沒有代碼的也無所謂了,然后由下面的工程師制作子類繼承,將真實的代碼寫入。3改進軟件也成為一件非常方便的事,如果某個類中的功能不適合使用了,需要升級了,就可以再一次地繼承他,方便了程序的升級。多態(tài)多態(tài)實際上是與對象緊密相聯系的。在類中,可以創(chuàng)建一個方法,如果這個方法中采用了對象作為參數,那么如果對象傳遞時是基類,那么就按基類進行處理,如果對象傳遞時是子類,那么就按子類進行處理。大家看下面的代碼:公開 類 基類 公開 輸出() 控制臺.輸出行(基類); 公開 類 子類 公開 輸出() 控制臺.輸出行(子類); 上述代碼中有兩個類,一個是基類,一個是子類。那

27、么都有相同的輸出方法,且子類的輸出方法覆蓋了父類的輸出方法。當創(chuàng)建不同的對象時,那么如果傳遞了這些不同的對象,就會按不同對象進行處理,代碼如下:公開 類 啟動類 公開 靜態(tài) 啟動() 基類 基類1 = 創(chuàng)建 基類(); 子類 子類1 = 創(chuàng)建 子類(); 測試多態(tài)(基類1); 測試多態(tài)(子類1); 靜態(tài) 測試多態(tài)(基類 參數) 參數.輸出(); 上述代碼中,可以看到,加了一個“創(chuàng)建多態(tài)”的方法命令,而這個方法命令的參數是對象,因此當上述“啟動”方法命令中創(chuàng)建了兩個不同的對象,一個是父對象,一個是子對象,于是在調用“測試多態(tài)”的靜態(tài)方法時,就根據不同的對象進行了不同的處理。接口“接口” 很簡單,

28、就是這樣一種東西:就是空的方法組成的一個類,打包成類模塊,然后供大家一起調用。這個類里的方法中,沒有具體的代碼,就是一個空的表,也可稱之為接口表。類似于C語言中的頭文件。接口具體的好處是在于多人工程開發(fā)時,由系統(tǒng)分析師制定出統(tǒng)一標準的接口,程序師進行具體接口程序的編程,這樣大家在進行大型工程項目時就通過接口進行溝通了。使用“接口”時要注意以下幾點:1接口只“聲明”一個或多個“公開”的方法,但不提供方法的實現代碼。也就是不需要系統(tǒng)分析師寫代碼。2定義接口方法時可以省略掉方法的“公開”屬性,編譯器默認其具有此屬性。也就是說系統(tǒng)分析師可以偷一些懶了。寫接口的格式樣例如下:公開 接口 接口1 公開 接

29、口方法1(); 公開 接口方法2();接口聲明與類聲明是同級別的。3只有類可以實現接口。一個類可以實現多個接口。一個接口可以實現多個方法。4接口文件編譯為類庫后,由系統(tǒng)分析師提交給程序師具體實現,不必提供類庫的源文件。也就是說上述接口定義的代碼保存為EF文件,然后編譯為ECL文件,只要提供程序員ECL文件給他們編程就可以了。5接口類似一種“規(guī)范”,如果某個類實現了此接口,表明此類遵循了此規(guī)范,以后就可以按照這種規(guī)范的要求來使用此類。6當系統(tǒng)分析師提供類以后,由程序師來實現接口的具體代碼時,要將此接口中的所有方法實現,一個也不能少哦,編譯器會做嚴格的檢查。一個類欲實現某個接口,意味著這個類“必須

30、實現這個接口(及其所有基接口)中聲明的所有方法”。7實現接口,就是由程序師具體實現原來接口表中空方法的代碼。那么在定義類時,程序師需要將接口的信息告訴類。定義類時,通過“接口實現表”屬性來指定該類所實現的接口,示例代碼如下:類 類1 /指定單個已實現的接口 公開 接口方法1() /這里需要程序員添加具體實現代碼 公開 接口方法2() /這里需要程序員添加具體實現代碼 類 類2 /指定多個已實現的接口 /.上述代碼中,類1指定了一個接口,類2指定了多個接口,具體的代碼在接口方法中實現。上述的代碼保存為EF文件后可以進行編譯,在編譯為EXE文件時,會檢查ECL類庫中的接口情況,如果正常,那么對于接

31、口的調用就相當于對于類中具體實現代碼的調用。接口通過“定義接口”、“實現接口”的兩個步驟后,下面就可以進行“使用接口”了。定義接口是由系統(tǒng)分析師進行的工作,實現接口是由程序師進行的工作,一般大的項目就會這樣安排,以利于分工合作,但是如果小的項目一般用不上,即使用上了,上述的也可能是一個人進行的。例如,在系統(tǒng)核心庫中已有一個現成的接口,并且被編譯為ECL類庫,接口原代碼可能為以下形式:(定義接口)公開 接口 錯誤處理 公開 邏輯 處理錯誤(整數 錯誤碼, 文本 錯誤文本);實現接口的代碼可以寫成以下內容:公開 類 錯誤處理類 公開 邏輯 處理錯誤(整數 錯誤碼, 文本 錯誤文本) 控制臺.輸出行

32、(哈哈,系統(tǒng)運行時錯誤被我捕獲!); 控制臺.輸出(錯碼碼); 控制臺.輸出行(錯誤碼); 控制臺.輸出行(錯誤文本); 返回 真; 調用接口的代碼可以為以下形式:公開 類 啟動類 公開 靜態(tài) 啟動() 控制臺.輸出行(測試中); 錯誤處理 自定接口 = 創(chuàng)建 錯誤處理類; 運行環(huán)境.置錯誤管理器(自定接口); 對象 對象1; / = 創(chuàng)建 對象(); 控制臺.輸出行(對象1.到文本(); /故意使用 空 對象 當調用接口的方法時,就相當于調用了具體對象實現的方法。其中有兩行大家要注意: 錯誤處理 自定接口 = 創(chuàng)建 錯誤處理類; 運行環(huán)境.置錯誤管理器(自定接口);上述代碼中可以看到,“錯誤

33、處理類”對象被聲明到“錯誤處理”這個接口中,然后下面一行對接口的操作實際上就是對對象的操作。總結大家也可以先學習舊版易語言中的面向對象,等熟悉之后,再學習易飛揚就非常輕松了。對比如下:面向對象因素VB易語言易飛揚構造/初始有有有析構/清理有有有繼承不支持有有虛擬方法不支持有有多態(tài)不支持有有封裝有有有重載/重名無無有接口無無有易語言中的面向對象教材可以通過學習易語言編程系統(tǒng)第十八章,或“易語言知識庫ESDN資料手冊開發(fā)手冊易語言面對對象編程”中可以找到??唇滩牡哪康木褪且獙嵱?,那么上述用了好朋友進行比喻,如果應用到實際程序中將會如何呢?你要將你的數據庫系統(tǒng)用分類的方法進行分門別類,如菜單類,快捷

34、鍵類,數據庫操作類這樣,一個具有人性化的程序就會出來了,里面的命令程序只要按面向對象的方法調用就行了。好了,大話面向對象到此暫告一段落,希望通過這些小小的比喻大家能了解掌握面向對象的知識,逐步看一些大一些的面向對象的例程,看的時候大家可以將這些大例程中的對象用概念圖畫出他的層次結構,互相之間的繼承關系,以這樣的方式對對象進行研究,這樣基本上就能看明白了。最后要告訴大家的是,我還會寫更多的教材和練習給大家看,畢竟在大量的練習下才會有長足的進步。面向對象并不難,細細品味易飛揚,道法自然是根本,編程世界誰稱王!第8章 易語言的子程序本章主要介紹易語言子程序的創(chuàng)建和調用、子程序參數的使用以及參數屬性的

35、設置方法。本章學習內容:8.1 新建子程序 8.6 參數的參考屬性8.2 調用子程序 8.7 子程序的返回值8.3 兩類子程序的區(qū)別 8.8 課后練習8.4 子程序參數 8.5 參數的可空屬性將程序分割成較小的功能單元就可以簡化程序設計任務,這些功能單元被稱為子程序,可以把共享的或常調用的功能置于子程序中,達到簡化程序設計、方便代碼重用和提高程序維護效率的目的,這是結構化程序設計的主要特征之一。 子程序可把程序劃分成相對獨立的功能單元,每個單元都比無子程序的整個程序容易調試和理解; 一個應用程序中的子程序,往往不必修改或只需稍作改動,便可以成為另一個程序的子程序。8.1 新建子程序下面我們就開

36、始新建第一個自定義子程序。方法十分簡單,一步一步跟我來吧!首先在啟動窗口添加一個按鈕,默認名稱為“按鈕1”。雙擊按鈕1進入代碼編輯界面。另一種更快捷的方法是,在代碼編輯區(qū)獲得焦點時,同時按下“Ctrl 鍵”和“N鍵”,也可以新建子程序。將光標移到代碼編輯行,右鍵單擊,在彈出菜單中選擇“新子程序”命令,就可以新建子程序。新建子程序的默認名稱為“子程序1”,依此類推。第三種方法,到主菜單上。選擇“插入” “新子程序”命令也可新建子程序?!白映绦?” 已經存在,當另一個子程序被修改成“子程序1”時,易語言彈出出錯提示。注意:在同一個程序集中,子程序名不能重復。特別在修改的時候,易語言會提示并修改已經

37、被使用過的名稱。被易語言修改的子程序名。新建的子程序沒有參數,這需要操作者自行添加所需數目的參數并設置參數的類型以及參數的可空、參考和數組等屬性。特別應該注意的是,每個新建的子程序都不會被易語言或其它子程序自動調用,下面將講解如何調用子程序。8.2 調用子程序前一節(jié)中講了如何建立子程序,下面演示如何調用一個子程序。在“_按鈕1_被單擊”事件子程序中添加程序代碼 “ 子程序1() ”或直接復制名稱,將其粘貼過來。在“子程序1”中添加代碼:信息框(“你好!我是信息框。”,#信息圖標,) 同一個子程序可以被多次調用。在“按鈕2”事件子程序中添加代碼 子程序1() 。 按F5鍵運行程序,分別單擊“按鈕

38、1”和“按鈕2”,都能彈出“子程序1”里的信息框。一個子程序可以在事件子程序和其它新建的子程序中多次被調用,也可以被其它程序集的事件子程序和新建的子程序調用。要注意的是,在本程序中定義的子程序只能在本程序中使用。每次調用子程序時,子程序中的所有命令都將從第一條開始順序執(zhí)行,當執(zhí)行到子程序尾部或者遇到“返回”命令時即返回到調用此子程序命令的下一條命令處。這里的“子程序1”同時被修改為信息框子程序。把“子程序1”修改為“信息框子程序”。上節(jié)中提到了子程序名稱的問題,這里我們還要提一個小建議。當要修改一個子程序名稱時,應該直接到這個子程序的定義位置進行修改。這樣可以使調用它的程序代碼同步修改該子程序

39、的名稱,如上圖所示。這可以避免因調用無效子程序導致的編譯錯誤。 大家可以看到,子程序必須由其它子程序調用才能被執(zhí)行。子程序的調用方法與命令的調用方法完全一致。 8.3 兩類子程序的區(qū)別雖然新建的子程序(自定義子程序)和事件子程序的調用方法一樣,但它們之間也有一些不同之處。輸入參數名稱并設置類型。最后按F5鍵運行程序,單擊“按鈕1”,信息框不見了。這是“_按鈕1_被單擊”子程序的原型,沒有參數。光標選中子程序名稱,按Enter鍵添加一個參數。信息框看不到的原因是“_按鈕1_被單擊”子程序參數結構被改變,易語言就會把它當作新建的子程序,和“按鈕1”沒有任何聯系了,而新建子程序可以任意的添加參數。請

40、大家自行總結一下新建的子程序和事件子程序的區(qū)別。8.4 子程序參數 參數和變量的使用方法一樣,可以使用賦值語句在參數內臨時存儲數據。參數有參數名(用來在程序中引用一個參數)、數據類型(確定參數能夠存儲數據的種類)以及“可空”和“參考”等屬性。參數只能在定義它的子程序中使用,相當于局部變量。把8.3中“_ 按鈕1_被單擊”事件子程序的“參數1”刪除。參數的“類型”屬性可為空。如果空,默認為整數型。在“信息框子程序”添加兩個文本型參數“參數1”和“參數2”。按F5鍵,程序無法運行,在輸出面板中可以看到出錯提示。這就說明我們還要在調用上述子程序時提供具體的參數。用光標選中此行并雙擊,在括號內添加“,

41、”號,按Enter鍵??吹搅藛??調用子程序的命令前多了個“”號,我們可以將它展開。展開的方法:直接雙擊或用鍵盤上的右光標鍵。標簽的標題在此處設置。參數提示和實際參數的內容是互相對應的,在上面添加文本型數據“易語言”,當程序運行時,下面“參數1”保存的數據就是“易語言”。接下來我們在程序中為子程序提供具體的參數數據。用“Ctrl+Tab”組合鍵切換到界面設計狀態(tài),在窗體上添加兩個標簽和兩個編輯框,并將標簽的標題屬性設置為“輸入123”,提示用戶。這是前面提到的“按鈕1”,下面的是“按鈕2”。切換到代碼編輯狀態(tài),在子程序調用處,分別為兩個參數提供數據(編輯框提供的文本型數據)。修改“信息框子程序”

42、代碼。按F5鍵運行程序,在“編輯框1”和“編輯框2”中輸入“123”,單擊“按鈕1”,第一個信息框被彈出。你也可以輸入其它的數據,看一看效果。子程序如需要接收參數數據,必須先在子程序定義處的參數表部分定義所需的參數。調用有參數的子程序時所傳遞過來的數據將被順序地填入對應的參數中。如果傳遞過來的數據與對應位置處的參數數據類型不一致,在可以互相轉換時,系統(tǒng)將自動將傳遞過來的數據轉換成對應參數的數據類型后再賦值給該參數;如果不能轉換,就會產生運行時錯誤。如上面的第 2 步在調用子程序的同時就把“編輯框1.內容”和“編輯框2.內容”作為參數數據對應地傳遞到了編輯框子程序內的兩個參數“參數1”和“參數2

43、”內。 8.5 參數的可空屬性參數可空,就是說該參數是可選的,從字面上就能理解它的意思。就是在調用子程序時,可以不提供該參數所需的數據??纯聪旅娴睦?。將“參數2”可空屬性選中。方法是,選中該處單元格再單擊或選中后按空格鍵。把調用處的“參數2”刪除。如果某個參數的“可空”屬性為真,那么在調用本子程序時,可以不給此參數傳遞數據??煽盏膮抵饕糜谥С志哂心J值的參數;另外,如果給某個子程序添加了新參數卻又不想去更改以前調用此子程序的代碼,那么只要將新參數設置為可空參數就行了。8.6 參數的參考屬性打個比方,你家的門鎖有兩把鑰匙,分別由兩個人拿著。不管是哪一個人都可以打開房門,改變家里家具的擺放位

44、置。如果子過程的參數具有“參考”屬性,那么,當調用子程序時負責提供該參數數據的是一個變量的話,在子程序中修改了該參數的值,那個變量的值也會跟著被改變。在“_按鈕1_被單擊”事件子程序中添加兩個局部變量。把編輯框提供的文本型數據轉換到整數型。注意:文本型數據默認具有參考屬性,所以此例中為了演示參數的參考屬性,把文本型數據轉換到整數型。添加信息框,顯示調用子程序后,“變量2”的值。將“信息框子程序”兩個參數的類型改為整數型。添加代碼,修改“參數2”的值。注意:為了更好地了解程序的運行過程,可以通過在關鍵代碼行前設置斷點的方法來跟蹤代碼行的執(zhí)行情況。在代碼行前設置斷點。設置斷點的方法:用光標選中將被

45、設置斷點的代碼行,再按F9鍵。按F5鍵運行程序,在啟動窗口的編輯框中輸入“123”,單擊“按鈕1”。窗口消失,程序停止,一個斷點變黃。這就說明在“_按鈕1_被單擊”事件子程序中,第一個斷點處的“信息框子程序”將被執(zhí)行?!皡?”的值被改變?!皡?”的值是“變量1”的值。兩個條件都成立。再按F5鍵,“信息框子程序”里的代碼被執(zhí)行。說明子程序已經被調用。再按F5鍵,斷點變?yōu)榧t色,彈出條件成立的信息框。單擊“確定”按鈕。程序又跳到了“信息框子程序”被調用處的下一行代碼處,說明“信息框子程序”執(zhí)行完畢。再按F5鍵,彈出“_按鈕1_被單擊”事件子程序中的信息框。由于運行開始時“編輯框1”內的數據為空文

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

47、所傳遞過來的變量類型與相應參數的數據類型不一致但可以相互轉換,譬如將整數型變量傳遞到小數型的參數時,則在數據被實際傳遞前,系統(tǒng)將首先自動將整數型變量的值轉換為小數型數據,然后再進行傳遞,在這種情況下,即使參數的“參考”屬性為真,系統(tǒng)也無法傳遞指向原變量的指針,只能傳遞經過類型轉換后的變量的值。如果系統(tǒng)將數據指針成功地傳遞過來,那么在子程序中對此參數內容的更改將會相應地反映到調用子程序時負責提供相應參數數據的變量上。8.7 子程序的返回值子程序可以返回數據,稱為返回值,但必須首先定義返回值的類型,并且要在子程序中使用“返回”命令進行返回。將“信息框子程序”的返回值類型設置為整數型。刪除下面兩行代

48、碼。參數2 123信息框 (“參考的使用方法。” #換行符 “變量2=” 到文本 (變量2), 0,)在“_按鈕1_被單擊”事件子程序中添加名稱為“返回值”的整數型變量?!胺祷刂怠弊兞坑脕肀4妗靶畔⒖蜃映绦颉狈祷氐恼麛敌蛿抵怠T凇靶畔⒖蜃映绦颉钡拿總€分支處添加返回命令。將“信息框子程序”里的兩個“信息框”命令復制到“_按鈕1_被單擊”子程序的判斷語句中。最后按F5鍵運行程序。調用一個子程序時,子程序中的所有命令將從第一條開始順序執(zhí)行,當執(zhí)行到子程序尾部或者遇到“返回”命令時即返回到調用此子程序命令的下一條命令處。當一個子程序有返回值時,如果需要使用該返回值,可以把子程序調用命令嵌在其它命令中,

49、如“變量1=變量2+子程序名(參數)+變量3”(這里假設“子程序名(參數)”有返回值),也可以建立一個與該返回值數據類型相同的變量來接收該返回值,即使用“變量名=子程序名(參數)”的形式(“=”在這里是賦值號)。8.8課后練習(1)練習子程序的建立與調用。 新建“Windows窗口程序”添加一個按鈕。添加如圖上的代碼。完成后運行一下程序看看。這兩個地方添加什么值,才可以使程序運行,并且能夠正確顯示呢?請大家來將這兩個命令補充完整。(2)練習編寫用子程序的方式表示兩數相加,返回和的例程。 ,新建易程序,放兩個編輯框組件與一個按鈕組件,雙擊按鈕組件,進入程序代碼界面。新建一個子程序,名稱為:“和是

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

51、數1 數2) 返回 (數1)否則 返回 (數2)如果結束最后按F5鍵運行程序。大家再留意一下,“如果”命令還有這種形式的,這種形式的“如果”命令雖然占的代碼行稍多,但邏輯很清晰,提倡大家以后在使用“如果”命令時多使用這種形式。新建一個子程序,名稱為:“誰最大”。加入兩個數。參數類型為整數型。返回值類型為整數型。第2章 編程的基礎概念在本章中,將講到編程的一些基礎知識,包括變量的概念,變量的有效范圍,數據類型等知識。其后,本書將引導您編寫一個自己的MP3播放器,認識窗口、按鈕、編輯框三個常用組件以及命令及事件子程序。本章學習內容:2.1 編寫第二個程序 2.6 編寫一個MP3播放器2.2 什么是

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

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


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