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