面向對象的三種基本特征:繼承,封裝,多態
UML(統一建模語言)
2.1 面向對象
2.1.1 結構化程序設計簡介
圖2.1 結構化軟件的邏輯結構示意圖
從圖2.1可以看出,結構化設計需要采用自頂向下的設計方式,在設計階段就需要考慮每個模塊應該分解成哪些子模塊,每個子模塊又分解成哪些更小的模塊……以此類推,直至將模塊細化成一個個函數。
2.1.2 程序的三種基本結構
任何簡單或者復雜的算法都可以由 順序結構, 選擇結構 ,循環結構 這三種基本結構組合而成。即基本結構。
2.1.3 面向對象程序設計簡介
采用面向對象方式開發的軟件系統,其最小的程序單元是類。這些類可以生成系統中的多個對象,而這些對象則直接映像成客觀世界的各種事物。
圖2.7 面向對象方式開發的軟件系統邏輯上的組成結構
從圖2.7可以看出,面向對象的軟件系統由多個類組成,類代表了客觀世界中具有某種特征的一類事物,這類事物往往有一些內部的狀態數據,比如人有身高,體重,年齡,愛好等各種狀態數據。類徽提供操作這些狀態數據的方法,還會為這類事物的行為特征提供相應的實現,這種實現也是方法。因此,可以得到如下的基本等式
成員變量(狀態數據) + 方法(行為) = 類定義
面向對象和面向過程相比粒度要大些,所以面向對象比面向過程更簡單,易用。我們來舉個例子來闡述他倆之間的關系:
假設需要組裝一台電腦,面向對象提供的是主板、CPU、內存條、硬盤等這種大粒度的組件,而面向過程提供的是一些二極管,三極管,集成電路等小粒度的組件。
從思維方式上我們也舉個例子來說明他倆的區別:
比如希望完成“豬八戒吃西瓜”這樣一件事。
在面向過程的程序世界中,一切以函數為中心,函數最大,因此這件事情會用這樣的語句表達: 吃(豬八戒,西瓜);
在面向對象的程序世界中,一切以對象為中心,對象最大,因此這件事情會用這樣的語句表達: 豬八戒,吃(西瓜);
對比兩條語句不難發現,面向對象的語句更接近自然語言的語法:主語,謂語,賓語一目了然,很直觀。
2.1.4 面向對象的基本特征
面向對象有三個基本特征:封裝、繼承、多態。
封裝:將對象的實現細節隱藏起來,然後通過一些公用方法來暴露該對象的功能;
繼承:當子類繼承父類後,子類作為一種特殊的父類,將直接獲得父類的屬性和方法;
多態:子類對象可以直接賦給父類變量,但運行時依然表現出子類的行為特征,這意味著同一個類型的對象在執行同一個方法時,可能表現出多種行為特征。
對象具有標識唯一性,而類是具有共同屬性、共同方法的一類事物。類是對象的抽象,對象則是類的實例。
對象間的相互合作需要一個機制協助進行,這樣的機制稱為“消息”。消息是一個實例與另一個實例之間相互通信的機制。
2.2 UML(統一建模語言)介紹————此節是基礎知識,完了會單獨提出來
2.3 Java的面向對象特征
2.3.2 類和對象
Java語言使用class 關鍵字來定義類,定義類的時候可使用成員變量來描述該類對象的數據,可使用方法來描述該類對象的行為特征。即定義類的同時可確定該類共同特征的屬性和行為。