您好,登錄后才能下訂單哦!
這篇文章主要介紹EA畫UML圖中如何為類添加操作和方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
操作
操作指明了目標對象狀態(tài)的轉(zhuǎn)換或返回給操作調(diào)用者值的查詢。它有名稱和參數(shù)列表,包括返回參數(shù)。操作指定了行為的結(jié)果,而不是行為本身,行為可以是一個方法,一次狀態(tài)機轉(zhuǎn)換或其他。
方法
方法是一個過程,它實現(xiàn)了一個操作,它有一個算法或過程描述,調(diào)用如果解析為一個方法,將導致該過程被執(zhí)行。
以上是ULM2.0對操作的方法的說明。你看懂了么,反正我是琢磨了好一會。那我就舉個例子吧。
說有一個駕駛者基類,它有有兩個派生類,分別是車主和小偷。駕駛者類聲明了一個啟動汽車的操作,車主類使用(實現(xiàn))的方法是擰車鑰匙,小偷類使用(實現(xiàn))的方法是直接接發(fā)動機電源線(電影里常有的)。
怎么樣,好點沒,下面繼續(xù)今天的話題。
屬性窗口的打開方法:
雙擊類圖中的對應(yīng)類框圖,選擇【General】以后,點擊【Operation】按鈕。
2.從模型樹中選擇對應(yīng)的類節(jié)點,打開上下文菜單并選擇【Operations...】菜單項。
無論哪種方法都可以打開下面的操作設(shè)定對話框。嚴格講這并不是操作自己的對話框,而是屬性和操作共同的對話框。本文只關(guān)注操作部分。
添加新操作的操作主要是在紅綠藍三個矩形框中進行的。和上篇文章一樣我們在這里只說明有(zhi)關(guān)(dao)的項目。
基本項目
基本項目通過紅框中的列表控件來設(shè)置。
Name:變量名,可以自由輸入文本。
Parameters:在參數(shù)設(shè)定部分詳細說明,此處省略。
Retun Type:數(shù)據(jù)類型,可以自由輸入文本,也可以點從下拉菜單中選擇。在下拉菜單的最下面,還有一個【Select Type...】選項,提供了從工程中選擇類型的功能。但是選擇的結(jié)果也只是作為文本保存,起到的作用僅限于輸入輔助。這一點和屬性類型一樣。
Scope:設(shè)定操作的可視性。從下拉列表中選擇,一共有四個選項:Public/Protected/Private/Package。Package也是可選的,表示也沒有問題。但是在生成代碼時當作Public處理。
Stereotype:可以設(shè)定一些分類信息,比如property set,property get,或者constructor等。
擴展項目
操作列表中有操作被選中時,可以設(shè)定該操縱的擴展屬性。
Concurrency:用于自定操作的并發(fā)屬性??赡艿倪x項有:
sequential:同時只能有一個調(diào)用發(fā)生。如果并發(fā)調(diào)用發(fā)生,則結(jié)果不保證。
guarded:允許并發(fā)調(diào)用發(fā)生,但同時只允許一個調(diào)用執(zhí)行。
concurrent:允許并發(fā)調(diào)用發(fā)生,并保證可以正確地并發(fā)執(zhí)行。
Virtual:用于指定抽象操作(虛函數(shù))。
Static:表明該操作是類操作(靜態(tài)函數(shù)),而非實例操作。
參數(shù)設(shè)定項目
參數(shù)定義主要是通過藍框中的【Parameters】表單來進行的??梢远x多個參數(shù),并設(shè)定他們的屬性。方法和類設(shè)定屬性的方法基本一致,此處省略。
我們試著為Person類追加了兩個方法,一個是靜態(tài)方法GetMarryAge,一個是虛函數(shù)Show。Person類變成了如下的樣子。
可以看到靜態(tài)方法GetMarryAge的下面有一條橫線,而Show操作被表示成斜體。這就是UML中靜態(tài)方法和抽象操作的表達方式。
如果這還不夠,還可以再往前走一步,生成代碼。在Person類上點擊鼠標右鍵調(diào)出上下文菜單選中【Code Engineering】-【Generate
Code】可以調(diào)出如下的生成代碼對話框。
在選擇路徑之后,按下【Generate】按鈕,我們既可以得到以下代碼。
首先是頭文件
然后是cpp
不做重復的事情,這才是正確的方法應(yīng)該有的樣子。
以上是“EA畫UML圖中如何為類添加操作和方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。