大話設計模式之物件導向基礎

2021-05-23 08:29:54 字數 1700 閱讀 9333

a.2  類與例項

物件是乙個自包含的實體,用一組可識別的特性和行為來標識。

物件導向程式設計:object-oriented programming

類就是具有相同的屬性和功能的物件的抽象的集合。

例項,就是乙個真實的物件。例項化就是建立物件的過程,使用new關鍵字來建立。

a.3  構造方法

構造方法,又叫建構函式,其實就是對類進行初始化。構造方法與類同名,無返回值,也不需要void, 在new時候呼叫。

宣告public:

cat(void);

public:

~cat(void);

實現cat::cat(void)

cat::~cat(void)

a.4 方法過載

方法過載提供了建立同名的多個方法的能力,但這些方法需使用不同的引數型別。

a.5 屬性與修飾符

屬性是乙個方法或一對方法,但在呼叫它的**看來,它是乙個字段,即屬性適合於以字段的方式使用方法呼叫的場合。欄位是儲存類要滿足其設計所需要的資料,欄位是與類相關的變數。

變數私有的叫字段,公有的叫屬性

a.6 封裝

每個物件都包含它能進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其它物件來完成自己的操作。

封裝的好處:

1)良好的封裝能夠減少耦合;

2)類內部的實現可以自由地修改;

3)類具有清晰的對外介面;

a.7 繼承

物件的繼承代表了一種'is-a'的關係,如果兩個物件a和物件b,可以描述為b是a,則b可以繼承a。

繼承者還可以理解為是對被繼承者的特殊化,因為它除了具備被繼承者的特性外,還具備自己獨有的個性。

如果子類繼承於父類,第一,子類擁有父類非private的屬性和功能;

第二,子類具有自己的屬性和功能,即子類可以擴充套件父類沒有的屬性和功能;

第三,子類還可以以自己的方式實現父類的功能(方法重寫)。

a.8 多型

表示不同的物件可以執行相同的操作,但要通過它們自己的實現**來執行

第一,子類以父類的身份出現;

第二,子類在工作時以自己的方式來實現;

第三,子類以父類的身份出現時,子類特有的屬性和方法不可以使用。

為了使子類的例項完全接替來自父類的類成員,父類必須將該成員宣告為虛擬的(virtual),子類可以過載將父類實現替換為它自己的實現。

多型的原理是當方法被呼叫時,無論物件身份被轉換為其父類,都只有位於物件繼承最末端的方法實現會被呼叫。也就是說,虛方法是按照其執行時型別而非編譯時型別進行動態繫結的。

a.9 重構

a.10 抽象類

第一,抽象類不能例項化;

第二,抽象方法是必須被子類重寫的方法;

第三,如果類中包含抽象方法,那麼類就必須定義為抽象類,不論是否還包含其他一般方法。

抽象類通常代表乙個抽象概念,它提供乙個繼承的出發點,當設計乙個新的抽象類時,一定是用來繼承的,所以,在乙個以繼承關係形成的等級結構裡面,樹葉結點應當是具體類,而樹枝結點均應當是抽象類。

a.11  介面

介面是把隱式公共方法和屬性組合起來,以封裝特定功能的乙個集合。一旦實現了介面,類就可以支援介面所指定的所有屬性和成員。宣告介面在語法上與宣告抽象類完全相同,但不允許提供介面中任何成員的執行方式。

實現介面的類就必須要實現介面中的所有方法和屬性。

乙個類可以支援多個介面,多個類也可以支援相同的介面。

未完待續.....

設計模式 之物件導向基礎一

總是在總是要等到睡覺前 才知道功課只做了一點點。總是要等到考試後 才知道該念的書都沒有念。總是要等到學下乙個專案的時候才知道上乙個專案根本就沒有學完。學到設計模式的時候,才明白師傅當時的苦心。原來基礎打不好只能在後邊的學習過程中費時間。不過還好的是我們還有這個機會不斷的學習。不斷地在後來的學習中反覆...

設計模式之物件導向

1物件 是乙個自包含的實體,用一組可識別的特性和行為來標識 2類 具有相同屬性和功能的物件的抽象的集合 3類的例項化 例項,就是乙個真實的物件。例項化就是建立物件的過程,用 new關鍵字來建立 4構造方法 又叫建構函式,其實就是對類進行初始化。構造方法與類同名,無返回值,也不需要 void,在new...

設計模式之物件導向

介面邏輯與業務邏輯分離。使用繼承與多型提高擴充套件性和復用性。對於專案剛開始的時候,可以不進行抽象,但是如果需求改變的時候,需要建立抽象來隔離以後可能發生的同類變化,也就是說對於程式的改動,是通過增加新 而不是修改舊 來完成。對於乙個類來說,應該只有乙個引起它變化的原因。職責過多會導致高度耦合。對於...