1. 程式人生 > >第二章.理解面向對象

第二章.理解面向對象

之間 重用 相同 執行 如何 ati 一切都 第二章 活動

面向對象語言的三個基本特征:封裝(Encapsulation)、繼承(Inheritance)、多態(Polymorphism)

封裝:將對象的實現細節隱藏起來,然後通過一些公用方法來暴露該對象的功能

繼承:實現軟件復用的手段,當子類繼承父類後,子類作為一種特殊的父類,將直接獲得父類的屬性和方法

多態:子類對象可以直接賦給父類變量,但運行時依然表現出子類的行為特征,意味著同一個類型的對象在執行同一個方法時,可能表現出多種行為特征。

抽象:忽略一個主題中與當前目標無關的那些方面,抽象並不打算了解全部問題,而只是考慮部分問題。

Java程序最小程序單位是類。

面向對象的方式是由OOA(面向對象分析)、OOD(面向對象設計)和OOP(面向對象編程)三部分組成

OOA對目標系統進行分析,建立分析模型,將之文檔化

OOD用面向對象的思想對OOA的結果進行細化,得出設計模型

采用UML(統一建模語言)來描述記錄OOA和OOD的結果

UML:OOA和OOD的分析、設計結果需要統一的符號來描述、交流並記錄,於是產生了UML

UML包括13中類型的圖形,常用的UML圖形有用例圖、類圖、組件圖、部署圖、順序圖、活動圖和狀態機圖。

用例圖:用於描述系統提供的系列功能,而每個用例則代表系統的一個功能模塊。

類圖:表示系統中應該包含哪些實體,各實體之間如何關聯。

類圖可以表示實體的靜態內部關系,還可以表示實體之間的相互關系:

  關聯:兩個實體間存在關系,關聯使用一條實線表示,帶箭頭的實線表示單向關聯。

   類中某個屬性引用到了另外一個實體時,則變成了關聯。

   關聯關系包括兩個特例:聚合和組合,組合比聚合更加嚴格。

     聚合:學生可以是籃球俱樂部成員,也可以是書法俱樂部成員。使用帶空心菱形框的實線表示。

     組合:你的耳朵是你的一部分,不可能是其他人的一部分。使用帶實心菱形框的實線表示。

  泛化:與繼承是同一個概念,都是指子類是一種特殊的父類,繼承使用帶空心三角形的實線表示。

     類實現接口是一種特殊的繼承,使用帶空心三角形的虛線表示。

  依賴:若一個類的改動會導致另一個類的改動,則稱兩個類之間存在依賴。依賴關系使用帶箭頭的虛線表示,其中箭頭指向被依賴的實體。

組件圖:大型應用程序通常會有一個或多個可部署的組件組成。對Java而言,可復用的組件通常打包成一個JAR、WAR等文件

部署圖:用於描述軟件系統如何部署到硬件環境中,它的用途是顯示軟件系統不同的組件將在何處物理運行,以及它們將如何彼此通信。

順序圖:描述了對象之間的交互(順序圖和通信圖都被稱為交互圖),重點在於描述消息及其時間順序。

活動圖:用於描述用例內部的活動或方法的流程。

狀態機圖:描述某一對象生命周期中需要關註的不同狀態,並會詳細描述刺激對象狀態改變的事件,以及對象狀態改變時所采取的動作。

面向對象語言可以更好的提供可重用性、可擴展性和可維護性。

Java語言中,除了8中基本數據類型外,一切都是對象。

類:具有相同或相似性質的一組對象的抽象就是類。

對象:是實際存在的該類事物的個體,因而也稱為實例(instance)。

   對象抽象化是類,類的具體化是對象。

類之間的結構關系:

一般到特殊:“is a”典型的繼承關系,子類是特殊的父類

整體到部分:“has a”典型的組合關系,在一個類中保存另一個對象的引用來實現組合關系。

第二章.理解面向對象