亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 易語言 > 正文

易語言中簡化了類的創建與使用,使得面對對象編程更簡單

2024-07-21 02:54:43
字體:
來源:轉載
供稿:網友

面對對象編程,可以說是當前最流行的編程方式,當前流行的面對對象的編程語言很多,如:C++、JAVA等等。易語言3.8版推出后,同樣緊跟編程語言發展的方向,也開始全面支持面對對象編程。并且在中文化編程的基礎上,簡化了類的創建與使用,使面對對象的編寫過程變的更加簡單。

1.類的插入

面對對象編程就離不開類的創建,下面首先介紹一下對象和類的區別。

對象(Object)是類(Class)的一個實例(Instance)。如果將對象比作房子,那么類就是房子的設計圖紙。所以面向對象程序設計的重點是類的設計,而不是對象的設計。

易語言中,可以通過菜單“插入”→“類模塊”來創建類,如圖所示:

易語言,類,創建,使用,面對對象編程

2.對象的構造和析構

創建后的類自動生成2個方法“_初始化()”和“_銷毀()”。

_初始化()”方法在基于該類的對象被創建后,會被自動調用,該方法的功能相當于構造函數;“_銷毀()”方法,在基于該類的對象被銷毀前,會被自動調用,該方法的功能相當于析構函數。在其他面向對象編程語言中,構造和析構函數是需要程序員自己創建的,易語言中簡化了這個過程。

構造函數和析構函數用于在基于該類的對象被構造(創建)和析構(銷毀)時初始化和銷毀數據。

而對象的構造和析構的過程是自動的,構造順序為:先構造基類對象,再構造其繼承類對象,如果類中具有對象成員,則先于其所處對象構造;析構順序為:先析構繼承類對象,再析構基類對象,如果類中具有對象成員,則在其所處對象后析構。

編程時需要做的事情就是在“_初始化()”和“_銷毀()”方法中,編寫基于該類的對象創建和銷毀時需要執行的代碼。

3.類的封裝

創建一個新類后,在“類名”上按下回車鍵,可以定義類的私有成員。點擊Ctrl+N,可以新建一個方法,在新建的方法中編輯代碼,就可以實現類的一些功能。

新定義方法,可以設置“公開”屬性。沒有設置“公開”屬性的方法,在基于該類的對象創建后是不可見的,這樣可以達到信息隱藏的目的,即讓類僅僅公開必須要讓外界知道的內容,而隱藏其它一切內容。如圖所示:

易語言,類,創建,使用,面對對象編程

類是將數據變量和方法封裝在一起的,其中方法(函數)表示了類的行為,數據變量是類的私有成員(類的屬性),私有成員只能由該類本身的方法代碼所訪問,屬于私有性質。所以提倡“對象調方法,方法改屬性”。

類的封裝包含以下幾個方面:

  • (1)類的所有成員數據變量只能由該類本身的方法代碼所訪問,屬于私有性質。
  • (2)在繼承類中可以以“類名.方法名”的方式指定訪問基礎類中的方法。
  • (3)只有標記為“公開”的方法才能在類代碼外部通過該類的對象實體來訪問。

4.類的繼承性

易語言在新創建一個類的時候,可以看到有一個名為“基類”的項目,該項目用來定義本類的基礎類。該項目不填寫內容的情況下,該類就沒有基類;如果在該項目中填入一個類的名稱,那么該類就是從填寫的類中派生而來的。派生后的類具有繼承性。

如,當前已經創建了一個類1,那么在創建類2的時候在基類中填入“類1”,這樣類2就是類1的派生類。如圖所示:

易語言,類,創建,使用,面對對象編程

派生出的類具有繼承性,如圖3中,“類1”是一個基類,“類2”是“類1”的派生類,那么“類2”就繼承了“類1”的所有方法。

下面用在畫板中畫各種圖形的例程,來進一步說明類繼承性。

首先創建一個基類“圖形”,并創建它的各種方法。代碼如下:

易語言,類,創建,使用,面對對象編程

易語言,類,創建,使用,面對對象編程

然后創建它的派生類:“橢圓

易語言,類,創建,使用,面對對象編程

橢圓”是“圖形”的派生類,這樣“橢圓”就繼承了“圖形”類中的所有公開的方法,即“橢圓”也具有了“圖形”中所公開的方法。這樣在“橢圓”對象創建后就可以調用這些繼承的方法:

易語言,類,創建,使用,面對對象編程

可以看到“圖形”類中的“取顏色()”和“取結束位置()”方法,沒有設置“公開”屬性,所以在基于“橢圓”(“圖形”類的派生類)的對象被創建后,沒有公開的方法即被隱藏起來了。

注意:

在一個派生的類中,可以直接調用其父類的方法。“橢圓”類的繪畫方法中,就直接調用了其父類的“取顏色()”方法,將填充顏色取出:

易語言,類,創建,使用,面對對象編程

這里要注意,雖然子類中可以直接調用父類的方法,但子類調用父類的方法取出和更改的都是自身的私有成員,而不能直接取得和更改父類的私有成員值。而例程中正確的設置了顏色,是由于程序中使用了覆蓋。覆蓋后面會詳細介紹。

5.類的多態性

程序中,創建了一個類型為“圖形”的數組,程序運行后,將其子類的變量依次加入到數組中,代碼如下:

易語言,類,創建,使用,面對對象編程

通過運行上述程序,可將4個子類對象變量加入到父類 “圖形對象”數組對象變量中,以后程序可以通過:“圖形對象[X].方法名()”來調用對應子類的不同方法。

易語言中類的多態性是指對象變量的多態性。

這種將子類變量賦值給父類變量的方法,體現了對象變量的多態性。

6.虛擬方法

虛擬方法,又稱為虛函數,是一種虛擬出的方法。

虛擬方法就是允許被子類重新定義父類的方法,這就是常說的函數的覆蓋(overload)。

其他編程語言中通過“virtual”關鍵字來定義虛函數,在易語言中可以不用定義,只要子類中有和父類參數和屬性完全相同的方法,然后通過上面講到的子類變量賦值給父類變量的作法,可以達到覆蓋虛方法的目的。當然也可以定義一個抽象虛方法(純虛函數),即一個空方法,只提供方法的框架而不編寫任何代碼,實現的過程完全通過子類的覆蓋來實現。

例程中,“圖形”基礎類定義了一個“繪畫()”的方法,該方法中沒有任何代碼,是一個抽象虛方法(純虛函數),程序又定義了“圖形”類的幾個派生類,包括“直線”、“矩形”、“橢圓”和“圓角矩形”,這些派生類中,都定義了同名的“繪畫()”方法,派生類的“繪畫()”方法實現了在畫板中畫出相應的圖形。

例程中,當按下鼠標并移動,則在畫板中跟隨鼠標移動來畫出所選圖形,當鼠標被松開,就在畫板中確定畫出指定圖形,代碼如下:

易語言,類,創建,使用,面對對象編程

易語言,類,創建,使用,面對對象編程

程序中,調用了圖形對象的“繪畫()”方法,而在“圖形”類中的“繪畫()”方法是沒有編寫任何代碼的,在這里,它會在畫板中畫出各種圖形,是由于其派生類中的“繪畫”方法將“圖形”類(它的父類)中的“繪畫()”方法覆蓋了,這種子類可以重新定義父類函數的特性,充分體現出了函數的多態性。這個覆蓋的過程是動態的,即在編寫類的時候,不定義某個方法要執行的代碼,當調用此方法時,系統自動根據所調用的對象實體去調用對應的方法。

這里說繼承的作用是為了代碼的重用,那多態則是為了實現接口的重用。像例程中提供的繪畫方法的接口,通過覆蓋實現了畫出多種不同的圖形。

1、易語言支持類的構造、析構、繼承、虛擬方法、多態、封裝特性。

2、對象的構造:

構造順序為:先構造基類對象,再構造其繼承類對象,如果類中具有對象成員,則先于其所處對象構造。

3、對象的析構:

析構順序為:先析構繼承類對象,再析構基類對象,如果類中具有對象成員,則在其所處對象后析構。

4、繼承:

任何類均可以指定另外一類作為其基類,繼承層數不限。

5、虛擬方法:

在基類中的方法可以被其繼承類中的同名方法覆蓋,當調用此方法時,系統自動根據所調用的對象實體去調用對應的方法。

6、多態性:

可以將一個繼承類對象賦予到其基類數據類型變量中,此時對此基類對象變量進行操作,將反映出繼承類對象的特性。

7、類的封裝:

  • A、類的所有成員數據變量只能由該類本身的方法代碼所訪問,屬于私有性質。
  • B、在繼承類中可以以“類名.方法名”的方式指定訪問基礎類中的方法。
  • C、只有標記為“公開”的方法才能在類代碼外部通過該類的對象實體來訪問。

易語言,類,創建,使用,面對對象編程

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到易語言教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久噜噜噜精品国产亚洲综合| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲国产精品网站| 国产精品福利观看| 日韩成人av在线播放| 国产精品永久免费视频| 555www成人网| 久久精品视频在线观看| 欧美成年人视频网站欧美| 国产精品久久久一区| 国产精品成人播放| 成人写真视频福利网| 久久av红桃一区二区小说| 国产日韩在线看片| 精品久久久999| 国产成人精品日本亚洲| 亚洲香蕉成视频在线观看| 色婷婷综合久久久久| 国产综合久久久久久| 91久久综合亚洲鲁鲁五月天| 成人av色在线观看| 亚洲va码欧洲m码| 久久在线免费观看视频| 欧美高清激情视频| 亚洲综合精品一区二区| 亚洲深夜福利视频| 日本高清视频精品| 亚洲精品国精品久久99热| 亚洲综合社区网| 5278欧美一区二区三区| 日韩www在线| 2019中文字幕在线| 国产精品白丝jk喷水视频一区| 2018国产精品视频| 亚洲国产精品大全| 91国偷自产一区二区三区的观看方式| 国产综合在线看| 日韩69视频在线观看| 色偷偷888欧美精品久久久| 欧美性猛交xxxx偷拍洗澡| 久青草国产97香蕉在线视频| 热99精品里视频精品| 在线观看亚洲视频| 成人在线精品视频| 亚洲精品国产精品国自产观看浪潮| 2019国产精品自在线拍国产不卡| 亚洲经典中文字幕| 国产日产久久高清欧美一区| 91九色国产视频| 欧美日韩在线免费观看| 日韩欧美高清在线视频| 亚洲综合精品伊人久久| 精品一区精品二区| 欧美成人高清视频| 国内外成人免费激情在线视频网站| 亚洲风情亚aⅴ在线发布| 亚洲成人av在线播放| 96国产粉嫩美女| 日韩成人激情在线| 一区二区成人av| 色综合视频一区中文字幕| 欧美黑人狂野猛交老妇| 国产精品视频26uuu| 久久亚洲一区二区三区四区五区高| 日韩激情第一页| 激情久久av一区av二区av三区| 色久欧美在线视频观看| 97香蕉超级碰碰久久免费的优势| 欧美在线一区二区三区四| 久久的精品视频| 美女av一区二区| 2018国产精品视频| 国产在线拍偷自揄拍精品| 亚洲精品一区二区三区婷婷月| 国产成人精品久久二区二区91| 亚洲一区第一页| 日韩欧美在线视频免费观看| 国产成+人+综合+亚洲欧美丁香花| 日本免费一区二区三区视频观看| 精品女同一区二区三区在线播放| 国产乱肥老妇国产一区二| 国产成人91久久精品| 国产亚洲美女精品久久久| 韩剧1988免费观看全集| 国自产精品手机在线观看视频| 亚洲性视频网址| 秋霞成人午夜鲁丝一区二区三区| 国产精品国产亚洲伊人久久| 国产日韩欧美成人| 97精品国产97久久久久久春色| 91成人免费观看网站| 欧美成人免费全部观看天天性色| 欧美成人国产va精品日本一级| 日韩精品在线视频| 91色在线视频| 成人免费视频97| 亚洲天堂av在线免费| 午夜精品久久久久久久99热浪潮| 久久伊人免费视频| 欧美日韩福利电影| 欧美激情在线播放| 91精品91久久久久久| 日韩电影免费在线观看| 欧美又大又粗又长| 国自产精品手机在线观看视频| 日本免费一区二区三区视频观看| 在线观看日韩av| 亚洲一区二区三区四区在线播放| 欧美性xxxxx| 欧美猛交免费看| 国产精品免费视频久久久| 欧美日韩亚洲网| 久久久女人电视剧免费播放下载| 亚洲xxx大片| 国产精品露脸自拍| 亚洲福利视频在线| 久久精品国产欧美亚洲人人爽| 久久久久国产精品一区| 2018日韩中文字幕| 欧美精品在线观看91| 国产精品视频精品| 欧美性生交大片免费| 国产欧美精品日韩精品| 中文字幕国内精品| 国产精品久久久久影院日本| 91久久久久久久久久久| 久久久精品日本| 91在线直播亚洲| 久久99久久99精品免观看粉嫩| 久久久久久久久久久人体| 不卡av在线播放| 亚洲综合小说区| 在线观看亚洲区| 久久久久久久久久久免费| 久久久国产精品视频| 日韩精品丝袜在线| 91人人爽人人爽人人精88v| 精品国产乱码久久久久久虫虫漫画| 欧美日韩国产中文精品字幕自在自线| 丝袜美腿精品国产二区| 超薄丝袜一区二区| 成人福利视频网| 亚洲激情视频在线观看| 国产xxx69麻豆国语对白| 国产精品一区二区三区毛片淫片| 国产成人精品视| 欧美乱大交xxxxx另类电影| 国产日韩在线观看av| 日韩免费中文字幕| 国产综合视频在线观看| 91在线视频精品| 精品久久久久久久久中文字幕| 45www国产精品网站| 91高清视频免费| 日韩在线免费高清视频| 欧美日韩一区免费| 久99久在线视频| 亚洲片av在线| 欧美中文在线视频| 一区二区三区 在线观看视| 最新中文字幕亚洲| 国产精品精品国产| 亚洲精品aⅴ中文字幕乱码| 亚洲人成网在线播放|