溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

發(fā)布時(shí)間:2021-06-07 12:43:05 來源:億速云 閱讀:398 作者:小新 欄目:編程語言

這篇文章主要介紹了易語言中如何簡(jiǎn)化類的創(chuàng)建方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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

1.類的插入

面對(duì)對(duì)象編程就離不開類的創(chuàng)建,下面首先介紹一下對(duì)象和類的區(qū)別。

對(duì)象(Object)是類(Class)的一個(gè)實(shí)例(Instance)。如果將對(duì)象比作房子,那么類就是房子的設(shè)計(jì)圖紙。所以面向?qū)ο蟪绦蛟O(shè)計(jì)的重點(diǎn)是類的設(shè)計(jì),而不是對(duì)象的設(shè)計(jì)。

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

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

2.對(duì)象的構(gòu)造和析構(gòu)

創(chuàng)建后的類自動(dòng)生成2個(gè)方法“_初始化()”和“_銷毀()”。

_初始化()”方法在基于該類的對(duì)象被創(chuàng)建后,會(huì)被自動(dòng)調(diào)用,該方法的功能相當(dāng)于構(gòu)造函數(shù);“_銷毀()”方法,在基于該類的對(duì)象被銷毀前,會(huì)被自動(dòng)調(diào)用,該方法的功能相當(dāng)于析構(gòu)函數(shù)。在其他面向?qū)ο缶幊陶Z言中,構(gòu)造和析構(gòu)函數(shù)是需要程序員自己創(chuàng)建的,易語言中簡(jiǎn)化了這個(gè)過程。

構(gòu)造函數(shù)和析構(gòu)函數(shù)用于在基于該類的對(duì)象被構(gòu)造(創(chuàng)建)和析構(gòu)(銷毀)時(shí)初始化和銷毀數(shù)據(jù)。

而對(duì)象的構(gòu)造和析構(gòu)的過程是自動(dòng)的,構(gòu)造順序?yàn)椋合葮?gòu)造基類對(duì)象,再構(gòu)造其繼承類對(duì)象,如果類中具有對(duì)象成員,則先于其所處對(duì)象構(gòu)造;析構(gòu)順序?yàn)椋合任鰳?gòu)繼承類對(duì)象,再析構(gòu)基類對(duì)象,如果類中具有對(duì)象成員,則在其所處對(duì)象后析構(gòu)。

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

3.類的封裝

創(chuàng)建一個(gè)新類后,在“類名”上按下回車鍵,可以定義類的私有成員。點(diǎn)擊Ctrl+N,可以新建一個(gè)方法,在新建的方法中編輯代碼,就可以實(shí)現(xiàn)類的一些功能。

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

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

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

類的封裝包含以下幾個(gè)方面:

  • (1)類的所有成員數(shù)據(jù)變量只能由該類本身的方法代碼所訪問,屬于私有性質(zhì)。

  • (2)在繼承類中可以以“類名.方法名”的方式指定訪問基礎(chǔ)類中的方法。

  • (3)只有標(biāo)記為“公開”的方法才能在類代碼外部通過該類的對(duì)象實(shí)體來訪問。

4.類的繼承性

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

如,當(dāng)前已經(jīng)創(chuàng)建了一個(gè)類1,那么在創(chuàng)建類2的時(shí)候在基類中填入“類1”,這樣類2就是類1的派生類。如圖所示:

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

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

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

首先創(chuàng)建一個(gè)基類“圖形”,并創(chuàng)建它的各種方法。代碼如下:

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

然后創(chuàng)建它的派生類:“橢圓

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

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

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

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

注意:

在一個(gè)派生的類中,可以直接調(diào)用其父類的方法?!?code>橢圓”類的繪畫方法中,就直接調(diào)用了其父類的“取顏色()”方法,將填充顏色取出:

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

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

5.類的多態(tài)性

程序中,創(chuàng)建了一個(gè)類型為“圖形”的數(shù)組,程序運(yùn)行后,將其子類的變量依次加入到數(shù)組中,代碼如下:

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

通過運(yùn)行上述程序,可將4個(gè)子類對(duì)象變量加入到父類 “圖形對(duì)象”數(shù)組對(duì)象變量中,以后程序可以通過:“圖形對(duì)象[X].方法名()”來調(diào)用對(duì)應(yīng)子類的不同方法。

易語言中類的多態(tài)性是指對(duì)象變量的多態(tài)性。

這種將子類變量賦值給父類變量的方法,體現(xiàn)了對(duì)象變量的多態(tài)性。

6.虛擬方法

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

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

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

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

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

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

程序中,調(diào)用了圖形對(duì)象的“繪畫()”方法,而在“圖形”類中的“繪畫()”方法是沒有編寫任何代碼的,在這里,它會(huì)在畫板中畫出各種圖形,是由于其派生類中的“繪畫”方法將“圖形”類(它的父類)中的“繪畫()”方法覆蓋了,這種子類可以重新定義父類函數(shù)的特性,充分體現(xiàn)出了函數(shù)的多態(tài)性。這個(gè)覆蓋的過程是動(dòng)態(tài)的,即在編寫類的時(shí)候,不定義某個(gè)方法要執(zhí)行的代碼,當(dāng)調(diào)用此方法時(shí),系統(tǒng)自動(dòng)根據(jù)所調(diào)用的對(duì)象實(shí)體去調(diào)用對(duì)應(yīng)的方法。

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

1、易語言支持類的構(gòu)造、析構(gòu)、繼承、虛擬方法、多態(tài)、封裝特性。

2、對(duì)象的構(gòu)造:

構(gòu)造順序?yàn)椋合葮?gòu)造基類對(duì)象,再構(gòu)造其繼承類對(duì)象,如果類中具有對(duì)象成員,則先于其所處對(duì)象構(gòu)造。

3、對(duì)象的析構(gòu):

析構(gòu)順序?yàn)椋合任鰳?gòu)繼承類對(duì)象,再析構(gòu)基類對(duì)象,如果類中具有對(duì)象成員,則在其所處對(duì)象后析構(gòu)。

4、繼承:

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

5、虛擬方法:

在基類中的方法可以被其繼承類中的同名方法覆蓋,當(dāng)調(diào)用此方法時(shí),系統(tǒng)自動(dòng)根據(jù)所調(diào)用的對(duì)象實(shí)體去調(diào)用對(duì)應(yīng)的方法。

6、多態(tài)性:

可以將一個(gè)繼承類對(duì)象賦予到其基類數(shù)據(jù)類型變量中,此時(shí)對(duì)此基類對(duì)象變量進(jìn)行操作,將反映出繼承類對(duì)象的特性。

7、類的封裝:

  • A、類的所有成員數(shù)據(jù)變量只能由該類本身的方法代碼所訪問,屬于私有性質(zhì)。

  • B、在繼承類中可以以“類名.方法名”的方式指定訪問基礎(chǔ)類中的方法。

  • C、只有標(biāo)記為“公開”的方法才能在類代碼外部通過該類的對(duì)象實(shí)體來訪問。

易語言中如何簡(jiǎn)化類的創(chuàng)建方法

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“易語言中如何簡(jiǎn)化類的創(chuàng)建方法”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI