物件導向技術學習筆記1 類及類間關係

2021-07-03 08:53:06 字數 2485 閱讀 4970

直接忽略「物件導向程式設計基礎」的內容,即類的概念,繼承等,因為這些內容在學習一門物件導向程式設計語言後一般都了解了

物件型別

1.物理物件和概念物件

物理物件:有形態的具體物體,如:電視機,遙控器

概念物件:無形態的抽象概念,如:帳戶,情緒

2.領域物件和實現物件

領域物件:程式要解決的領域中本身包含的物件,如賬戶,取款機,客戶

實現物件:由於電腦程式需要而設計的輔助物件,如:錯誤恢復日誌

3.主動物件和被動物件

主動物件:不再外部刺激下可以改變自身狀態,通常用程序或執行緒實現,如:定時器

被動物件:不改變自身狀態,除非接收外部資訊

結構建模技術

1.uml中類的表示

類的表示

類名屬性1:型別1

屬性2:型別

.......

操作1:返回型別1

操作2:返回型別2

......

物件的表示

物件:類名

屬性1:型別1

屬性2:型別

.......

操作1:返回型別1

操作2:返回型別2

......

在屬性,操作前面可以加字首表示可訪問性

-  號  私有

+ 號  公有

# 號  受保護的

類之間的關係

1.繼承

泛化和特化:子類是父類的特化,父類是子類們的泛化

2.關聯

表示類之間有雙向關係,表示物件關係時稱鏈結,鏈結是關聯的例項就像物件是類的例項

在類之間畫一條線段表示關聯關係

不要去識別所有的類間關係,就像不要把現實物件中的所有屬性都寫入類中

注:在分析階段,關聯關係常被認為是雙向的,即可以從關聯關係的任何一段進行跟蹤,但在設計階段,只需要從其中乙個方向來實現系統的需求

(1)角色

(2)重數

因為關聯表示的是類與類之間的關係,而每個類可以有多個物件

重數表示與指定物件關聯的物件可以有多少個

(3)限定

(4)自反關聯關係和角色

同乙個類的兩個物件的關聯關係,即類與自己的關聯,稱自反關聯關係,其中,包括單向關聯和雙向關聯

用從乙個類影象頂部出發回折連線到類影象的右邊的折線表示自反關聯,帶箭頭就可以表示單向關聯

課程的單向自反關聯:一門課程(如高等數學)以另一門課程(如初等數學)為前導課程,高等數學可以索引餓到初等數學,但是初等數學沒有索引到高等數學,因為初等數學有無限種後續課程:物理學,化學,生物學.......不可知它究竟有多少種可後續的課程,也沒有必要被索引。

(5)n元關聯關係

關聯關係通常是二元關係,但類可以有n元的關聯關係

用乙個連線所有相關類的菱形表示

因為建模階段,二元關係是類之間最好的關聯形式。n元關係可以轉化為多個二元關係。

在設計階段,一些二元關係還可以轉換為單向關係

如學生參與某個教授講授的課程,學生-課程-教授 三元關係可以轉化為:

學生註冊了課程

教授講授課程

教授教學生

(6)關聯關係類:

有時兩個有關聯的類的本身內容不足以表示這種關聯關係,需要補充另乙個類來表示"關係",比如兩個人的屬性不足以表示他們之間的戀愛關係,那就要建立乙個戀愛關係的物件,這個物件可以包含:戀愛關係建立時間,戀愛關係的熱度,等,之所以不把戀愛的屬性列入「人」的類中,是因為,並不是每兩個人之間都有戀愛關係,人的物件在其他場合下,可以有敵對關係,戀愛關係,或者沒有關係,在其他場合下,人不體現出"戀愛"這個特徵。

在關聯線段中間向一側作垂直虛線連線乙個關聯關係類圖,表示關聯關係類

3.聚合關係—— 一種特殊的關聯關係

表示整體類與區域性類的關係,即乙個類屬於另乙個類的一部分或者說乙個類包含另乙個類,如團隊與隊員的關係

在關聯線段的連線整體類的那一端使用菱形來表示

(1)組合關係—— 一種特殊的聚合關係

區域性物件會在整體物件消失時消失的聚合關係

可以在建立整體物件之後建立區域性物件,但是在析構這個整體物件之前,要顯式地刪除這些物件

一般的聚合關係的菱形使用空心菱形,而組合關係的菱形使用實心菱形

(2)約束和注意事項

"約束"是對uml元素語義的擴充套件,即補充說明一些uml標準中未定義的限制

用表示約束,如:

賬戶- 帳號

- 密碼

- 餘額

在兩個關聯關係間也可以新增約束

表示"二者得一,不可兼有"關係,表示子集關係

可以在兩條關係線段中間畫一條垂直的虛線,並在虛線旁邊寫上約束

如某俱樂部與客戶關係是關聯關係,中客戶與俱樂部間關係可以是「某客戶是俱樂部的會員」的關係,也可以是"某客戶是俱樂部的高階會員"的關係,這兩種關係中,前者是後者的子集

如筆記本與光碟機的關係是聚合關係,筆記本可以擁有cd-rom,或者***,二者之一,但不可二者兼有,即"筆記本擁有cd-rom",與「筆記本擁有***」的兩個關係中可以有一種

關於"注意事項":對uml新增注釋,用右上角折的折角矩形中寫入內容表示

物件導向及類

物件導向的特徵 封裝 繼承 多型。物件導向設計的過程就是乙個抽象的過程 1 發現類,類定義的物件會擁有屬性和方法。2 發現類的屬性,物件有的靜態特徵在類中表示是被稱作類的屬性。3 發現類的行為,物件所執行的操作叫做類的方法。類的定義 class 類名 類中的public和private表明後面所跟成...

物件導向筆記 多個類

基類與派生類 派生類的定義 派生類的成員列表描述的是派生類自己新增加的資料成員和成員函式 注意 派生類的設計 類成員的訪問 派生類新增的成員訪問基類的類成員 類使用者訪問派生類的成員 類使用者訪問派生類的基類成員 無論採用何種繼承方式得到的派生類,派生類成員及其友元都不能訪問基類的私有成員,派生類外...

java 學習筆記 物件導向(子父類)

子父類成員,變數 函式 建構函式 1 變數 如果子類中出現非私有的同名變數時,子類要訪問本類中的變數,用this。子類要訪問父類中的同名變數,用super。super的使用和this的使用幾乎一致。this代表的是本類物件的引用。super代表的是父類物件的引用 2 函式 當子類出現和父類一模一樣的...