怎么添加屬性(attribute)
本篇文章我們說明如何添加屬性(attribute)。屬性是OO中的一個(gè)詞匯,在C++語法中,應(yīng)該叫數(shù)據(jù)成員。這里我們盡量使用OO中的屬性一詞。
打開屬性窗口有兩種方法:
1.雙擊類圖中的對(duì)應(yīng)類框圖,選擇【General】以后,點(diǎn)擊【Attributes】按鈕。
2.從模型樹中選擇對(duì)應(yīng)的類節(jié)點(diǎn),打開上下文菜單并選擇【Attributes】菜單項(xiàng)。
無論哪種方法都可以打開下面的屬性設(shè)定對(duì)話框。嚴(yán)格講這并不是屬性自己的屬性對(duì)話框,而是屬性和操作共同的對(duì)話框。本文只關(guān)注屬性部分。
添加新屬性的操作主要是在紅綠兩個(gè)矩形框中進(jìn)行的。我們?cè)谶@里只說明有(zhi)關(guān)(dao)的項(xiàng)目。
基本項(xiàng)目
基本項(xiàng)目通過紅框中的列表控件來設(shè)置。
Name:變量名,可以自由輸入文本。
Type: 數(shù)據(jù)類型,可以自由輸入文本,也可以點(diǎn)從下拉菜單中選擇。在下拉菜單的最下面,還有一個(gè)【Select Type...】選項(xiàng),提供了從工程中選擇類型的功能。但是選擇的結(jié)果也只是作為文本保存,起到的作用僅限于輸入輔助。如果你期待變量類型和被參照的類型 名聯(lián)動(dòng),那你想多了。
Scope:從下拉列表中選擇,一共有四個(gè)選項(xiàng):Public/Protected/Private/Pack
age。Package也是可選的,表示也沒有問題。但是在生成代碼時(shí)當(dāng)作Public處理。
Initial Value:為屬性設(shè)置初期值??梢跃偷剌斎牖虼蜷_對(duì)話框輸入。區(qū)別不詳。
擴(kuò)展項(xiàng)目
屬性列表中有屬性被選中時(shí),可以設(shè)定該屬性的擴(kuò)展屬性。
Static:表明該屬性是靜態(tài)屬性,或稱靜態(tài)數(shù)據(jù)成員。
Property:定義Property操作方法(Getter/Setter)。具體畫面如下:
Const:定義常量數(shù)據(jù)成員。
下面來看一個(gè)實(shí)例:
在本例中創(chuàng)建了三個(gè)屬性(擴(kuò)展項(xiàng)目部分省略表示):
私有的int型變量m_age,并為其設(shè)置了Proerpty屬性。
保護(hù)的string變量m_name。
靜態(tài),公開的int型變量MARRY_AGE。
作為上述操作的結(jié)果,類圖變成下面這個(gè)樣子。
請(qǐng)注意觀察在類圖中屬性的表達(dá)方式。另外也可以看到SetAge和GetAge兩個(gè)方法。
關(guān)于初期值的補(bǔ)充說明:
在基本項(xiàng)目中有一個(gè)初期值InitialValue需要補(bǔ)充說明一下。
在C++11之前這個(gè)項(xiàng)目只能應(yīng)用于靜態(tài)常量數(shù)據(jù)成員。
在C++11以后,可以為每個(gè)變量設(shè)定缺省值。當(dāng)構(gòu)造函數(shù)的初始值列表中沒有為數(shù)據(jù)成員制定初始值的時(shí)候,編譯器會(huì)利用這個(gè)缺省值來初始化數(shù)據(jù)成員。