1. 程式人生 > >【軟考】——面向物件技術(1)

【軟考】——面向物件技術(1)

面向物件???——》一種具有構造繼承性、 封裝性和多型的程式設計語言族的命名

              ???——》一種程式設計風格

面向物件???——》物件 + 分類 + 繼承 +  通過訊息的通訊;

物件???——》基本的執行實體;

實體???——》將屬性和方法封裝為了一個整體;

物件的組成???——》物件名、屬性、操作;

封裝???——》把物件的屬性和行為結合成一個獨立的單位;???——》隱蔽物件的內部細節;

       ???——》使物件的使用者和生產者分離, 使物件的定義和實現分開;

多型???——》不同的物件收到同一個訊息時,產生完全不同的結果;

多型的分類???——》

通用???——》引數(也稱為最純的多型)、包含;

特定???——》過載、強制;

繼承???——》一個類可以派生子類,同時子類物件自動具有父類物件的特性;

繼承分類???——》單重繼承、多重繼承;

訊息???——》物件之間進行通訊的一種構造;

訊息傳遞???——》接收到資訊的物件經過解釋,然後予以響應;

注意:

傳送訊息的物件不需要知道接收訊息的物件是如何對請求予以響應;

繫結???——》一個把過程呼叫響應呼叫所需要執行的程式碼加以結合的過程;

繫結的分類???——》動態繫結、靜態繫結;

動態繫結???——》繫結在執行時進行;

靜態繫結???——》繫結在編譯時進行;

注意:

動態繫結是和類的繼承以及多型相聯絡的;???——》繫結在執行時進行;

到這裡,我們明白了面向物件是什麼以及有什麼組成;組成的要素是什麼以及其包含在其中的關係等;

面向物件技術???——》

面向物件技術???——》面向物件分析、面向物件設計、面向物件程式設計;

面向物件分析(〇〇A)

分析???——》

功能/資料分析???——》分開考慮系統的功能要求和資料及其結構;

面向物件分析???——》將資料和功能結合在一起作為一個綜合物件來考慮;???——》可將系統的行為和資訊間的關係表示為迭代構造特徵;

面向物件分析???——》為獲得對應用問題的理解;???——》確定系統的功能、 效能要求;

面向物件分析???——》認定物件、組織物件、描述物件間的相互作用、基於物件的操作、 定義物件的內部資訊;

認定物件???——》在應用領域中,按自然存在的實體確立物件;

注意:

認定物件的困難在於尋找實質性物件???——》實質性物件是系統穩定性的基礎;

組織物件???——》分析物件間的關係,將相關物件抽象成類;

組織物件目的???——》簡化關聯物件;???——》利用類的繼承性建立具有繼承性層次的類結構;???——》系統的行為和資訊間的分析過程是一種迭代表徵過程;

描述物件間的相互作用???——》描述出各物件在應用系統中的關係;???——》由一個物件解釋另一個物件;

基於物件的操作???——》簡單操作、複雜操作;

注意:當連線的物件太複雜時,可將其標識為新物件;

定義物件的內部資訊???——》

講了這麼多,知道為什麼要面向物件分析呢???——》比較容易理解和管理;便於修改;

我們使用面向物件思維來分析完某個軟體,那麼我們如何來使用面向物件的思維來設計這個軟體呢?

面向物件設計(OOD)

面向物件設計(OOD)???——》設計分析模型和實現相應原始碼;

設計過程(又稱為再處理)???——》發現物件的過程;???——》必須有從分析模型到設計模型到程式設計語言的線性轉換規則;

物件可以用“預先開發的原始碼”(可稱為構件)實現???——》簡化面向物件環境的產生;

面向物件程式設計(OOP)

面向物件程式設計(OOP)???——》是一種程式設計範型;

程式設計範型???——》在程式設計時採用的基本方式模型;???——》決定思維方式、工具;

程式設計範型的發展經歷???——》過程程式設計、模組化程式設計、函式程式設計、邏輯程式設計、面向物件程式設計;

面向物件程式設計的實質???——》選用一種面向物件程式設計語言,採用物件、類及其相關概念所進行的程式設計;

注意:

提高了抽象程度???——》加入了類和繼承性;

???——》定義並描述一組物件的共同行為和屬性;

類是在物件之上的抽象,物件是類的具體化,是類的例項;???——》具有例項化功能;

例項化功能???——》

例項生成???——》從該子類沿繼承路徑上溯至它的一個基類;然後自頂向下執行該子類所有父類的例項生成方法;最後執行該子類例項生成方法的函式體;

例項消除???——》先執行該子類例項消除方法的函式體,再沿繼承路徑自底向上執行該子類所有父類的例項消除方法;

例項化功能???——》決定了類及其例項具有下面的特徵

  1. 同一個類的不同例項具有相同的資料結構???——》同一方法集合定義的操作;
  2. 具有不同的狀態???——》同一個類的不同例項可以持有不同的值;
  3. 例項的初始狀態可以在例項化時確定;

類的例項化過程???——》一種例項的合成過程,而不僅僅是根據單個型別進行的空間分配、初始化和繫結;

繼承???——》定義類之間的關係;???——》類層次結構;???——》例項生成、例項消除;

孤立的類???——》只能描述實體集合的特徵同一性;

00PL 中的繼承機制體現了一條重要的面向物件程式設計原則:開發人員在構造程式時不必從零開始, 而只需對差別進行程式設計;???——》繼承;???——》 00PL與傳統程式設計語言在語言機制方面最根本的區別;

訊息傳遞???——》

???——》決定訊息傳遞的合法範圍;而類的方法???——》規定了例項的訊息傳遞協議;

物件與資料型別的表示形式???——》十分相似,但有本質區別???——》物件之間通過訊息傳遞方式進行通訊;

物件???——》用傳遞訊息的方式互相聯絡的通訊實體;

注意:

傳送一條訊息至少應給出一個物件的名字和要發給這個物件的那條訊息的名字;

物件自身引用???——》

物件自身引用的值???——》使得方法體中引用的成員名與特定的物件相關;

物件自身引用的型別???——》決定了方法體被實際共享的範圍;

物件自身引用機制???——》使得在進行方法的設計和實現時並不需要考慮與物件聯絡的細節;???——》提高了抽象性;

注意:

使方法對具體的物件更有個性???——》不同的物件在執行同樣的方法體時,因為物件的狀態不同而產生不同的行為;???——》將方法與特定的物件動態地聯絡在一起;???——》訊息傳遞機制和物件自身引用;

重置???——》在子類中重新定義父類中已經定義的方法;

基本思路???——》使用動態繫結機制???——》用“適合自己要求的實現”去置換“父類中的相應實現”;

類屬類???——》一種引數多型機制;類的模板;???——》對類庫的建設提供了強有力的支援;

一個類屬類???——》關於一組類的一個特性抽象;???——》類的成員特徵中與具體型別無關的那些部分, 而與具體型別相關的那些部分則用變元來表示;

無例項的類???——》抽象類

注意:

衡量一個面向物件程式設計語言成熟與否的重要標誌???——》是否建立了一個豐富的類庫;

is-a關係???——》特殊類是一種一般類;一般類是特殊類的父類;

大家給個贊,就是給我最大的鼓勵!!!

注意:“贊”位於右上角;