物件導向講解 2

2021-04-15 12:58:45 字數 1687 閱讀 5677

泛化(

generalization)

圖表1

泛化在上圖中,空心的三角表示繼承關係(類繼承),在

uml的術語中,這種關係被稱為泛化(

generalization

)。person(人)

是基類,

teacher(教師)

、student(學生)

、guest(來賓)

是子類。

若在邏輯上b是

a的「一種」,並且

a的所有功能和屬性對

b而言都有意義,則允許b繼承

a的功能和屬性。

例如,教師是人,

teacher

是person

的「一種」(

a kind of

)。那麼類

teacher

可以從類

person

派生(繼承)。

如果a是基類,b是

a的派生類,那麼

b將繼承

a的資料和函式。

如果類a和類

b毫不相關,不可以為了使

b的功能更多些而讓b繼承

a的功能和屬性。

若在邏輯上b是

a的「一種」(

a kind of

),則允許b繼承

a的功能和屬性。

聚合(組合)

圖表2

組合若在邏輯上a是

b的「一部分」(

a part of

),則不允許b從

a派生,而是要用

a和其它東西組合出b。

例如,眼(

eye)、鼻(

nose

)、口(

mouth

)、耳(

ear)是頭(

head

)的一部分,所以類

head

應該由類

eye、

nose

、mouth

、ear

組合而成,不是派生(繼承)而成。

聚合的型別分為無、共享(聚合

)、復合(組合

)三類。

聚合(aggregation)

圖表3

共享上面圖中,有乙個菱形(空心)表示聚合(

aggregation

)(聚合型別為共享),聚合的意義表示

has-a

關係。聚合是一種相對鬆散的關係,聚合類

b不需要對被聚合的類

a負責。

組合(composition)

圖表4

復合這幅圖與上面的唯一區別是菱形為實心的,它代表了一種更為堅固的關係

——組合(

composition

)(聚合型別為復合)。組合表示的關係也是

has-a

,不過在這裡,

a的生命期受

b控制。即

a會隨著

b的建立而建立,隨

b的消亡而消亡。

依賴(dependency)

圖表5

依賴這裡b與

a的關係只是一種依賴

(dependency)

關係,這種關係表明,如果類

a被修改,那麼類

b會受到影響。

歡迎您使用http://blogmove.cn提供的"部落格搬家"和"博文三窟"服務.

物件導向和面向過程講解

物件導向 把構成這個問題的事物分成乙個的物件,然後呼叫物件 面向過程 分析出實現這個問題所需要的步驟,然後乙個步驟乙個步驟的時間,然後從上往下把每個步驟 一起。例子說明 洗衣服 面向過程 把衣服放進盆子裡 到洗液 加水 洗衣服 倒髒水 加水 洗衣服 擰乾 晾曬 物件導向 加水 洗衣服 倒髒水 加水 ...

物件導向2

6 static關鍵字 用法 是乙個修飾符,用於修飾成員 當成員被靜態修飾後,就多了乙個呼叫方式,除了可以被物件呼叫外,還可以直接被類名呼叫。類名.靜態成員 static特點 static成員 也叫 類變數 1 隨著類的載入而載入 也就是說 靜態會隨著類的消失而消失。說明它的生命週期最長 2 優先於...

物件導向2

一.昨日內容回顧 1.匿名函式 lambda 引數 返回值 def chi return 飽了 lambda 飽了 2.sorted 排序 sorted iterable,key function,reverse false 3.filter 篩選 filter function,iterable ...