物件的特徵與實現二

2021-08-30 10:51:35 字數 1152 閱讀 3844

1、復用具體實現

**復用是物件導向程式設計語言所提供的最了不起的優點之一。

最簡單的復用某個類的方式就是直接使用該類的乙個物件。此外也可以將那個類的乙個物件置於某個新的類中。我們稱其為「建立乙個成員物件」。新的類可以由任意數量、任意型別的其他物件以任意可以實現新的類中想要的功能的方式所組成。因為是在使用現有的類合成新的類,所以這種概念被稱為組合,如果組合是動態發生的,那麼它通常被稱為聚合。組合經常被視為「has-a"(擁有)關係。

組合帶來了極大的靈活性。新類的成員物件通常都被宣告為private,使得使用新類的客戶端程式員不能訪問它們。這也使得你可以在不干擾現有客戶端**的情況下,修改這些成員。也可以在執行時修改這些成員物件,以實現動態修改程式的行為。

2、繼承

物件這種觀念,本身就是十分方便的工具。使得你可以通過概念將資料和功能封裝到一起,因此可以對問題空間的概念給出恰當的表示,而不用受制於必須使用底層機器語言。這些概念用關鍵字class表示,它們形成了程式語言中的基本單位。

繼承:能夠以現有的類為基礎,複製它,然後通過新增和修改這個副本來建立新類。

當源類(被稱為基類,超類或父類)發生變動時,被修改的」副本「(被稱為匯出類、繼承類或子類)也會反映出這些變動。

型別不僅僅只是描述了作用於乙個物件集合上的約束條件,同時還有與其他型別之間的關係。兩個型別可以有相同的特性和行為,但是其中乙個型別可能比另乙個含有更多的特性,並且可以處理更多的訊息(或以不同的方式來處理訊息)。繼承使用基型別和匯出型別的概念表示了這種型別之間的相似性。乙個基型別包含其所有匯出型別所共享的特性和行為。可以建立乙個基型別來表示系統中某些物件的核心概念,從基型別中匯出其他型別,來表示此核心可以被實現的各種不同方式。

當繼承現有型別時,也就創造了新的型別。這個新的型別不僅包括現有型別的所有成員(儘管private成員被隱藏了起來,並且不可訪問),而且更重要的是它複製了基類的介面。也就是說,所有可以傳送給基類物件的訊息同時也可以傳送給匯出類物件。由於通過傳送給類的訊息的型別可知類的型別,所以這也就意味著匯出類與基類具有相同的型別。通過繼承而產生的型別等價性是理解物件導向程式設計方法內涵的重要門檻。

有兩種方法可以使基類與匯出類產生差異。第一種方法非常直接:直接在匯出類中新增新方法。第二種也是更重要的一種使匯出類和基類之間產生差異的方法是改變現有基類的方法的行為,這被稱之為覆蓋那個方法。要想覆蓋某個方法,可以直接在匯出類中建立該方法的新定義即可。

物件的特徵與實現

1 每個物件都有乙個介面 在程式執行期間具有不同的狀態而其他方面都相似的物件會被分組到物件的類中,這就是關鍵字class的由來。建立抽象資料型別 類 是物件導向程式設計的基本概念之一。抽象資料型別的執行方式與內建 built in 型別幾乎完全一致 你可以建立某一型別的變數 按照物件導向的說法,稱其...

特徵篩選的原理與實現

特徵工程又包含了feature selection 特徵選擇 feature extraction 特徵提取 和feature construction 特徵構造 等子問題,本章內容主要討論特徵選擇相關的方法及實現。在實際專案中,我們可能會有大量的特徵可使用,有的特徵攜帶的資訊豐富,有的特徵攜帶的資...

物件導向的特徵

計算機軟體系統是現實生活中的業務在計算機中的對映,而現實生活中的業務其實就是乙個個物件協作的過程。物件導向程式設計就是按現實業務一樣的方式將程式 按乙個個物件進行組織和編寫,讓計算機系統能夠識別和理解用物件方式組織和編寫的程式 這樣就可以把現實生活中的業務物件對映到計算機系統中。物件導向的程式語言有...