程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 《瘋狂Java講義》學習筆記——第2章 理解面向對象,瘋狂java講義筆記

《瘋狂Java講義》學習筆記——第2章 理解面向對象,瘋狂java講義筆記

編輯:JAVA綜合教程

《瘋狂Java講義》學習筆記——第2章 理解面向對象,瘋狂java講義筆記


面向對象的三種基本特征:繼承,封裝,多態

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 關鍵字來定義類,定義類的時候可使用成員變量來描述該類對象的數據,可使用方法來描述該類對象的行為特征。即定義類的同時可確定該類共同特征的屬性和行為。

 

 

 

 

 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved