java程式設計思想學習筆記——第1章 物件導論
1.1 抽象過程
面向物件思想的實質:程式可以通過新增新型別的物件使自身適用於某個特定問題。
面向物件思想的五個基本特徵:
1)萬物皆物件
2)程式是物件的集合
3)每個物件都有自己的由其他物件所構成的儲存
4)每個物件都有其型別
5)某一特定型別的所有物件都可以接收同樣的訊息
物件具有行為、狀態和標識,這意味著每一個物件都可以有內部資料(他們給出了該物件的狀態) 和方法(他們產生行為),每一個人物件在記憶體中都有一個唯一的地址。
1.2 每個物件都有一個介面
建立抽象資料型別是面向物件程式設計的基本概念之一。
類描述了具有相同特性(資料元素)和行為(功能)的物件集合。
1.3 每個物件都提供服務
試圖理解一個服務設計時,最好的方法就是將物件想想為“服務提供者”。
1.4 被隱藏的具體實現
程式設計師按照角色分為類建立(構建類)和客戶端程式設計師(收集各種用來實現快速應用開發的類)。
訪問控制存在的第一個原因是讓客戶端程式設計師無法觸及到他們不應該觸控到的部分。
第二個原因是允許類庫設計者可以改變 內部的工作方式而不會擔心影響到客戶端程式設計師。
public: 公用的,任何人都可以訪問的;
private:私有成員變數;
protected:受保護的;
預設: 包訪問許可權:類可以訪問在同一個包下的其他成員。
1.5 複用具體實現
一旦類被建立並被測試完,那麼他就應該代表一個有用的程式碼單元。
程式碼複用是面向物件思想最了不起的優點之一。
組合:使用現有的類合成一個新的類。如果組合是動態發生的,那麼它通常稱為聚合。組合被視為“has-a"關係。
組合帶來了巨大的靈活性,新類的成員通常都被宣告為private。
在建立新類的時候,應該首先考慮組合關係。因為組合更簡單靈活,處處使用繼承會導致難以使用並過分的設計。
1.6 繼承
以現有的類為基礎,複製它,然後通過新增和修改這個副本來建立新類。通過繼承就可以達到這個效果,不過也有例外,當源類(被稱為基類、超類或者父類)發生變動時,被修改的副本(也被稱為匯出類、繼承類或者子類)也會反映出這種變動。
型別不僅僅是描述了作用於一個物件集合上的約束條件,同時還有與其他型別之間的關係。
繼承使用基型別和異出型別的概念表示:兩個型別具有相同的行為和特性,但其中一個型別可能比另一個含有更多的特性。