易语言java类_易语言面对对象编程
易語言面對對象編程---類的創(chuàng)建與使用
面對對象編程,可以說是當(dāng)前最流行的編程方式,當(dāng)前流行的面對對象的編程語言很多,如:C++、JAVA等等。易語言3.8版推出后,同樣緊跟編程語言發(fā)展的方向,也開始全面支持面對對象編程。并且在中文化編程的基礎(chǔ)上,簡化了類的創(chuàng)建與使用,使面對對象的編寫過程變的更加簡單。
1.類的插入
面對對象編程就離不開類的創(chuàng)建,下面首先介紹一下對象和類的區(qū)別。
對象(Object)是類(Class)的一個實例(Instance)。如果將對象比作房子,那么類就是房子的設(shè)計圖紙。所以面向?qū)ο蟪绦蛟O(shè)計的重點是類的設(shè)計,而不是對象的設(shè)計。
易語言中,可以通過菜單“插入”→“類模塊”來創(chuàng)建類,如圖1所示:
圖1創(chuàng)建新類
2.對象的構(gòu)造和析構(gòu)
創(chuàng)建后的類自動生成2個方法“_初始化()”和“_銷毀()”。
“_初始化()”方法在基于該類的對象被創(chuàng)建后,會被自動調(diào)用,該方法的功能相當(dāng)于構(gòu)造函數(shù);“_銷毀()”方法,在基于該類的對象被銷毀前,會被自動調(diào)用,該方法的功能相當(dāng)于析構(gòu)函數(shù)。在其他面向?qū)ο缶幊陶Z言中,構(gòu)造和析構(gòu)函數(shù)是需要程序員自己創(chuàng)建的,易語言中簡化了這個過程。
構(gòu)造函數(shù)和析構(gòu)函數(shù)用于在基于該類的對象被構(gòu)造(創(chuàng)建)和析構(gòu)(銷毀)時初始化和銷毀數(shù)據(jù)。
而對象的構(gòu)造和析構(gòu)的過程是自動的,構(gòu)造順序為:先構(gòu)造基類對象,再構(gòu)造其繼承類對象,如果類中具有對象成員,則先于其所處對象構(gòu)造;析構(gòu)順序為:先析構(gòu)繼承類對象,再析構(gòu)基類對象,如果類中具有對象成員,則在其所處對象后析構(gòu)。
編程時需要做的事情就是在“_初始化()”和“_銷毀()”方法中,編寫基于該類的對象創(chuàng)建和銷毀時需要執(zhí)行的代碼。
3.類的封裝
創(chuàng)建一個新類后,在“類名”上按下回車鍵,可以定義類的私有成員。點擊Ctrl+N,可以新建一個方法,在新建的方法中編輯代碼,就可以實現(xiàn)類的一些功能。
新定義方法,可以設(shè)置“公開”屬性。沒有設(shè)置“公開”屬性的方法,在基于該類的對象創(chuàng)建后是不可見的,這樣可以達(dá)到信息隱藏的目的,即讓類僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容。如圖2所示:
圖2私有成員及方法
類是將數(shù)據(jù)變量和方法封裝在一起的,其中方法(函數(shù))表示了類的行為,數(shù)據(jù)變量是類的私有成員(類的屬性),私有成員只能由該類本身的方法代碼所訪問,屬于私有性質(zhì)。所以提倡“對象調(diào)方法,方法改屬性”。
類的封裝包含以下幾個方面:
(1)類的所有成員數(shù)據(jù)變量只能由該類本身的方法代碼所訪問,屬于私有性質(zhì)。
(2)在繼承類中可以以“類名.方法名”的方式指定訪問基礎(chǔ)類中的方法。
(3)只有標(biāo)記為“公開”的方法才能在類代碼外部通過該類的對象實體來訪問。
4.類的繼承性
易語言在新創(chuàng)建一個類的時候,可以看到有一個名為“基類”的項目,該項目用來定義本類的基礎(chǔ)類。該項目不填寫內(nèi)容的情況下,該類就沒有基類;如果在該項目中填入一個類的名稱,那么該類就是從填寫的類中派生而來的。派生后的類具有繼承性。
如,當(dāng)前已經(jīng)創(chuàng)建了一個類1,那么在創(chuàng)建類2的時候在基類中填入“類1”,這樣類2就是類1的派生類。如圖3所示:
圖3創(chuàng)建派生類
派生出的類具有繼承性,如圖3中,“類1”是一個基類,“類2”是“類1”的派生類,那么“類2”就繼承了“類1”的所有方法。
下面用在畫板中畫各種圖形的例程,來進(jìn)一步說明類繼承性。
首先創(chuàng)建一個基類“圖形”,并創(chuàng)建它的各種方法。代碼如下:
然后創(chuàng)建它的派生類:“橢圓”
“橢圓”是“圖形”的派生類,這樣“橢圓”就繼承了“圖形”類中的所有公開的方法,即“橢圓”也具有了“圖形”中所公開的方法。這樣在“橢圓”對象創(chuàng)建后就可以調(diào)用這些繼承的方法:
可以看到“圖形”類中的“取顏色()”和“取結(jié)束位置()”方法,沒有設(shè)置“公開”屬性,所以在基于“橢圓”(“圖形”類的派生類)的對象被創(chuàng)建后,沒有公開的方法即被隱藏起來了。
注意:在一個派生的類中,可以直接調(diào)用其父類的方法。“橢圓”類的繪畫方法中,就直接調(diào)用了其父類的“取顏色()”方法,將填充顏色取出:
這里要注意,雖然子類中可以直接調(diào)用父類的方法,但子類調(diào)用父類的方法取出和更改的都是自身的私有成員,而不能直接取得和更改父類的私有成員值。而例程中正確的設(shè)置了顏色,是由于程序中使用了覆蓋。覆蓋后面會詳細(xì)介紹。
5.類的多態(tài)性
程序中,創(chuàng)建了一個類型為“圖形”的數(shù)組,程序運(yùn)行后,將其子類的變量依次加入到數(shù)組中,代碼如下:
通過運(yùn)行上述程序,可將4個子類對象變量加入到父類 “圖形對象”數(shù)組對象變量中,以后程序可以通過:“圖形對象[X].方法名()”來調(diào)用對應(yīng)子類的不同方法。
易語言中類的多態(tài)性是指對象變量的多態(tài)性。
這種將子類變量賦值給父類變量的方法,體現(xiàn)了對象變量的多態(tài)性。
6.虛擬方法
虛擬方法,又稱為虛函數(shù),是一種虛擬出的方法。
虛擬方法就是允許被子類重新定義父類的方法,這就是常說的函數(shù)的覆蓋(overload)。
其他編程語言中通過“virtual”關(guān)鍵字來定義虛函數(shù),在易語言中可以不用定義,只要子類中有和父類參數(shù)和屬性完全相同的方法,然后通過上面講到的子類變量賦值給父類變量的作法,可以達(dá)到覆蓋虛方法的目的。當(dāng)然也可以定義一個抽象虛方法(純虛函數(shù)),即一個空方法,只提供方法的框架而不編寫任何代碼,實現(xiàn)的過程完全通過子類的覆蓋來實現(xiàn)。
例程中,“圖形”基礎(chǔ)類定義了一個“繪畫()”的方法,該方法中沒有任何代碼,是一個抽象虛方法(純虛函數(shù)),程序又定義了“圖形”類的幾個派生類,包括“直線”、“矩形”、“橢圓”和“圓角矩形”,這些派生類中,都定義了同名的“繪畫()”方法,派生類的“繪畫()”方法實現(xiàn)了在畫板中畫出相應(yīng)的圖形。
例程中,當(dāng)按下鼠標(biāo)并移動,則在畫板中跟隨鼠標(biāo)移動來畫出所選圖形,當(dāng)鼠標(biāo)被松開,就在畫板中確定畫出指定圖形,代碼如下:
程序中,調(diào)用了圖形對象的“繪畫()”方法,而在“圖形”類中的“繪畫()”方法是沒有編寫任何代碼的,在這里,它會在畫板中畫出各種圖形,是由于其派生類中的“繪畫”方法將“圖形”類(它的父類)中的“繪畫()”方法覆蓋了,這種子類可以重新定義父類函數(shù)的特性,充分體現(xiàn)出了函數(shù)的多態(tài)性。這個覆蓋的過程是動態(tài)的,即在編寫類的時候,不定義某個方法要執(zhí)行的代碼,當(dāng)調(diào)用此方法時,系統(tǒng)自動根據(jù)所調(diào)用的對象實體去調(diào)用對應(yīng)的方法。
這里說繼承的作用是為了代碼的重用,那多態(tài)則是為了實現(xiàn)接口的重用。像例程中提供的繪畫方法的接口,通過覆蓋實現(xiàn)了畫出多種不同的圖形。
1、易語言支持類的構(gòu)造、析構(gòu)、繼承、虛擬方法、多態(tài)、封裝特性。
2、對象的構(gòu)造:
構(gòu)造順序為:先構(gòu)造基類對象,再構(gòu)造其繼承類對象,如果類中具有對象成員,則先于其所處對象構(gòu)造。
3、對象的析構(gòu):
析構(gòu)順序為:先析構(gòu)繼承類對象,再析構(gòu)基類對象,如果類中具有對象成員,則在其所處對象后析構(gòu)。
4、繼承:
任何類均可以指定另外一類作為其基類,繼承層數(shù)不限。
5、虛擬方法:
在基類中的方法可以被其繼承類中的同名方法覆蓋,當(dāng)調(diào)用此方法時,系統(tǒng)自動根據(jù)所調(diào)用的對象實體去調(diào)用對應(yīng)的方法。
6、多態(tài)性:
可以將一個繼承類對象賦予到其基類數(shù)據(jù)類型變量中,此時對此基類對象變量進(jìn)行操作,將反映出繼承類對象的特性。
7、類的封裝:
A、類的所有成員數(shù)據(jù)變量只能由該類本身的方法代碼所訪問,屬于私有性質(zhì)。
B、在繼承類中可以以“類名.方法名”的方式指定訪問基礎(chǔ)類中的方法。
C、只有標(biāo)記為“公開”的方法才能在類代碼外部通過該類的對象實體來訪問。
人
易語言的“類”
組件實現(xiàn)
構(gòu)造
誕生
“_初始化”
創(chuàng)建完畢
析構(gòu)
死亡
“_銷毀”方法
將被銷毀
繼承
父子有共性
“基類”與派生類,父類與子類
重用組件
虛擬方法
也有特性
同名同姓
也有特性
更改屬性方式事件
多態(tài)
多種能力
雙胞姓
對象變量的多態(tài)性
函數(shù)的多態(tài)性
實現(xiàn)功能不一樣
組件名可一樣
封裝
私有財產(chǎn)
通訊地址
公開身份
成員數(shù)據(jù)
指定訪問
公開方法
子程序變量
指定組件訪問
少重載
類指針
操作符
事件
總結(jié)
以上是生活随笔為你收集整理的易语言java类_易语言面对对象编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: myeclipse 2017定制工具栏
- 下一篇: linux FHS pdf,linux