OOP技術(shù)易語言面向?qū)ο髮W(xué)習(xí)樣本_第1頁
OOP技術(shù)易語言面向?qū)ο髮W(xué)習(xí)樣本_第2頁
OOP技術(shù)易語言面向?qū)ο髮W(xué)習(xí)樣本_第3頁
OOP技術(shù)易語言面向?qū)ο髮W(xué)習(xí)樣本_第4頁
OOP技術(shù)易語言面向?qū)ο髮W(xué)習(xí)樣本_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。OOP技術(shù) :易語言面向?qū)ο髮W(xué)習(xí)當(dāng)前有很多編程語言都是支持面向?qū)ο蟮?如: DELPHI、 VC+、 JAVA 等,但大家對于概念性的一些內(nèi)容,取很難去理解、學(xué)習(xí) ,有的學(xué)習(xí)者因為概念入不了門 ,使得放棄了進一步深入學(xué)習(xí)。 現(xiàn)在 ,易語言 38 版也支持類 ( Class)了 ,因此 ,本文經(jīng)過介紹易語言的面向?qū)ο蟮母拍?使大家更加容易地學(xué)習(xí)了解,再去學(xué)習(xí)其它語言中的相關(guān)知識就不會那么難了。一枯燥的理論1對象和類要討論”面向?qū)ο蟆?, 大家必須首先搞懂什么是”對象” 。面向?qū)ο缶幊陶Z言中的”對象”概念和我們?nèi)粘I钪姓f的”對象” 、

2、 ”東西”或”實體”非常相似 ( 其實編程語言中的”對象”就是從現(xiàn)實生活中的”對象” 、 ”實體”的概念發(fā)展而來的 ) 。能夠指你面前的這臺戴爾電腦或你家樓下的那輛奔馳轎車 , 也能夠指你們公司的銷售員小張。編程語言中的”類”的概念也和現(xiàn)實生活中的”類”非常相似。也是對某一類有共同特征的” 東西”( 實體 ,可能我們應(yīng)該稱” 對象”)的概括。能夠看出 ,”類”是一個抽象的概念 ,比如當(dāng)你提到” 電腦”這個概念時 ,你指的不是你面前的這臺電腦 , 不是你家隔壁超市西面出口處用于結(jié)帳的那臺電腦 , 也不是世界上任何一臺具體的電腦 , 而是指”電腦”這個抽象的概念 , 是”具有處理器、 存儲器和輸入

3、、 輸出設(shè)備的電子設(shè)備” 。同樣 , ”員工”指的也不是你們公司是小張 , 不是我們公司的小王 , 也不是世界上任何一家公司的任何一個具體的工作人員 , 而是”服務(wù)于某家公司并定期領(lǐng)取薪水的人” 。上面我們所說的”電腦”和”員工”就是兩個”類” , 因為它們分別概括了某一類型的”對象”的基本特征。另外要說明的一點是 : ”類”和”所有這類對象的集合”也是不一樣的 , 因為后一個概念雖然也很全面 , 但它指的依然是一大堆具體的對象 , 而不是一個抽象的概念。這可能有點像在玩文字游戲 , 希望你能適應(yīng)并喜歡這種游戲規(guī)則 ,畢竟做任何事情都是需要”規(guī)則游戲”的,面向?qū)ο缶幊桃膊焕馀丁YY料內(nèi)容僅供您

4、學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。2 的”成 ”與”方法”每個 一般有它的屬性 , 比如每個 工都有自己的” 姓名”, 每到月底都能 到 ”日工 ”乘以”本月出勤天數(shù)”算出來的工 。 里的”姓名” 、 ” 日工 ”和”本月出勤天數(shù)”就是” 工” 個 的 屬性 ( 或叫”成 ” ) 。而每月工 的 算方法 ( 日工 * 本月出勤天數(shù) ) 就的” 工” 的一個 ”方法”。在易 言中的 模 中 , 一個 看起來就像一個程序集 , 的成 看起來就像一個程序集 量 , 的方法看起來就像程序集中的一個子程序。 ( 注意 , 只是看起來像 , 它 之 是有很明 地區(qū) 的 )3 例化 例化指的是

5、從一個 到 個 的 象 ( 例 ) , 就像上面 的從” 工”到你 公司的小 。 一個 并不是一個可操作的 體 , 它只是一個概念 , 只有 象才是可操作的 , 比如你 公司必 把薪水 放 具體的人 ( 比如小 ) , 而不是 放到抽象的” 工”或” 售 ”。在易 言中 , 生成一個 的 例 象 ( 實例化 ) 就是定 一個以 個 數(shù)據(jù) 型的 量。 能 在 點 ( ) 來使用 個 象的方法 , 而操作 個 象 ( 似于 用”窗口 1. 移 ( ) ”來移 ”窗口 1”) 。4 承” ”、 ” 工” 兩個” ” 然 大 , 概括了 多多的” 象”, 可是她 竟太 泛了 , 有 候我 需要更具體一

6、點的概念。 比如 人 你 , 你家的那臺 是臺什么 的 , 你就 不會回答 : ”我家的那臺 是一臺 ”, 而是 出你的 的品牌 , 或具體的配置 ( 比如一臺”戴 8530 ”或”一臺奔 3 ”) 。同 , 你會 人 , 你 公司的小 是一個” 售 ”。前面提到的”戴 8530 ”和” 售 ”同 都是 , 可是她 分 比” ”、 ” 工” 兩個個 更加具體。 里你從” ”到”戴 8530 ”和從” 工”到” 售 ”用的就是” 承” , 因 前面的每兩 概念中的后一個都具 了前一個的所有特征 ( 比如” 售 ”肯定服 于某家公司并定期 取薪水 ) , 可是有都比前一個具有更多或更具體的特征 (

7、 比如 售 有具資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。體的工作 : 負責(zé)銷售 , ”銷售員”的薪水可能比普通的員工要高一些 ) 沒錯 , 編程語言中的繼承就是這樣的。 總的說來 , ”繼承” 指的是從一個相對比較寬泛的類到一個相對具體一點的類。 在一個繼承關(guān)系中相對較寬泛的類被稱做后一個類的”基類” , 相對較具體的類被稱做前一個類的”派生類” 。當(dāng)然 , 從這個相對較具體的類還可能會得出更加具體一點的類 , 這又是一個繼承關(guān)系 , 這時 , 這個”相對較具體的類”又成為了”更加具體一點的類”的基類 , 后一個就是前一個的”派生類” , 這樣的”具體化”還可能無限繼續(xù)下

8、去。可是”繼承”絕對不能具體化到某個具體的”實體”也就是對象 ( 比如從銷售員”具體化”到你們公司的銷售員小張 ) , 因為繼承只能發(fā)生在兩個”類”之間 , 一旦從類具體化到了對象那就不叫”繼承”了 , 就成了”實例化”。二牛刀小試1定義一個類 ,生成實例對象有了理論基礎(chǔ) ,我們來牛刀小試一把 !就以公司的員工為例子吧,打開易語言 3.8 新建一個窗口程序 ,插入一個”類模塊” ,輸入如下代碼 :資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。本程序定義了一個類” 員工”,這個類說明了所有公司員工的共同特性都有一個姓名 (當(dāng)然 ,員工的共同屬性肯定不止這些,這里為了簡單 ,僅僅考

9、慮”姓名” ) 并給它定義了一個文本型成員”姓名”同時提供了兩個公開方法用于操作這個成員。其中”取姓名”方法只是簡單地返回該類的唯一成員”姓名”;”置姓名”方法用于給”姓名”成員賦值。為了確保”姓名”成員包含合法的姓名信息 ,程序在”置姓名”方法里加了參數(shù)合法性檢查。有了一個類 ,下面我們來進行”實例化”即從”員工”這個抽象的概念具體化到一個公司的員工張三。然后在啟動窗口上放置一個按鈕,并輸入如下代碼 :資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。這里的程序定義了一個”員工”類型的變量”張三” , 也就從”員工”類 實例化了一個對象”張三” 。由于”張三”是”員工”類的對象

10、, 因此她就具有了這個類的所有成員和方法 , 然后我們就能夠調(diào)用張三這個對象的兩個公開方法對它進行操作了。易語言中所有的類成員均為私有成員 , 因此我們無法直接經(jīng)過對象給它的成員賦值 , 只能經(jīng)過調(diào)用公開方法 ( 張三 . 置姓名 ( ”張三”) 設(shè)置員工的姓名 , 而我們在”員工”的”置姓名 ( ) ”方法中加了參數(shù)合法性檢查 , 因此實現(xiàn)了對類成員的保護。 ( 其實這個保護是不完整的 , 如果沒有調(diào)用 張三 . 置姓名 ( ”張三” ) , 這個員工還是沒有姓名的 , 即用” 張三 . 取姓名 () ”方法取得的為空文本 , 下面在講” _初始化”方法時將解決這個問題。 )這里順便說一下類

11、方法的訪問限制。一個類的方法可設(shè)置為”公開”或”受保護”,如果一個類的某個方法被”公開” 就意味這這個方法能夠被該類的其它方法、該類的實例對象和它的派生類訪問(即調(diào)用 ) ;否則 ,這個方法就是”受保護”方法 ,受保護方法只能被該類的其它方法和它的派生類訪問而不能經(jīng)過該類的實例對象來訪問。比如上面的”張三 . 置姓名 ( ”張三” ) ”就是經(jīng)過對象直接訪問類的公有方法。 你能夠試著把” 員工”類的”取姓名 ( ) ”公開 欄 的勾號去掉把它變成一個受保護方法 , 再運行該程序 , 易語言編譯器就會報錯 : ” 錯誤 (10123): 指定方法” 取姓名” 未被公開 , 不能在外部被調(diào)用。 ”

12、看來我們的易語言還是很聰明的哦。 關(guān)于類方法在繼承中的訪問限制 , 我們將在最后面具體討論。注意 : 易語言中沒有類的公有 ( 公開 ) 成員 , 它的所有成員均為私有 , 因此 , 一個類的所有成員都只能在類的內(nèi)部使用 , 而不能經(jīng)過”對象名 . 成員名 = 值”的方式來直接訪問類的成員。因此 , 如果你想把一個類的某個成員公開給外部使用 , 就必須給這個類添加相應(yīng)的方法來取和置這個成員的值。2” _初始化”與 ”_銷毀”在上面的”員工”類的代碼中,還有兩個方法我沒有提到,那就是這節(jié)的資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。標(biāo)題提到的那兩個方法。仔細研究一下 , 你會發(fā)

13、現(xiàn)這兩個方法非常特別。第一 : 方法名都是以下劃線開頭 ; 第二 : 它們都是” 受保護”的 ; 第三 : 它們都沒有返回值和參數(shù) ; 第四 : 這兩個方法是在我們插入一個類模塊時自動生成的。 形式的特殊決定了它們功能的特殊。 這兩個方法是” 私有” 的, 即未公開的 , 也就是說它們只能在類內(nèi)部使用。 在什么時候使用呢 ? 我們做個實驗 , 在這兩個方法中輸入如下代碼 :更改” _按鈕 1_被單擊”子程序如下 :然后運行調(diào)試運行這個程序,我們發(fā)現(xiàn)易語言是這樣輸出的:在彈出信息框之前 :* 員工類 初始化* 張三 . 置姓名 ()* 張三 . 取姓名 ()彈出信息框之后 :* 子程序即將結(jié)束資

14、料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請聯(lián)系改正或者刪除。* 員工類 銷毀我們能夠發(fā)現(xiàn) ,”_初始化”是在”員工”類生成對象”張三”時被調(diào)用,”_銷毀”是在該對象超出作用域 , 將被銷毀時調(diào)用。由于”張三”對象是一個局部變量 , 因此它的作用域 ( 生存周期 ) 和它所在的子程序是一樣的 , 于是 , 在進入這個子程序后 , 執(zhí)行第一行代碼之前 , ”張三”就被創(chuàng)立 , ”_初始化”方法被自動調(diào)用 ; 在這個子程序最后一行代碼執(zhí)行完畢即將退出時” 張三”就被銷毀 , ”_銷毀”方法被自動調(diào)用。你也能夠用類似的代碼驗證一下對象作為程序集變量和全局變量使時的情況。另外 , 每生成該類的一個實例對象 , 該類的” _初始化”就被調(diào)用一次 ,每銷毀一個對象 ,該類的” _銷毀”方法就被調(diào)用一次( 有點像窗口的”創(chuàng)立完畢”和”銷毀”事件 ) 。你能夠多招幾名員工 ( 生成”員工”類的多個實例 , 即定義多個”員工”類型的變量 ) 驗證一下哦。這兩個方法的這種特性在編寫程序時能夠給我們很大的幫助 , 讓我們有機會在一個對象被創(chuàng)立時做一些初始化工作 ( 比如打開一個文件 , 初始化類的私有成員 ) , 在這個對象被銷毀時 , 做一些善后工作 ( 比如關(guān)閉打開的文件 ) 。根據(jù)這種特性 ,我們

溫馨提示

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

最新文檔

評論

0/150

提交評論