面向?qū)ο蟮幕靖拍钣?strong>對(duì)象、類、抽象、封裝、繼承、多態(tài)、接口、消息、組件、模式和復(fù)用等。
1.對(duì)象
對(duì)象是由數(shù)據(jù)及其操作所構(gòu)成的封裝體,是系統(tǒng)中用來描述客觀事物的一個(gè)封裝,是構(gòu)成系統(tǒng)的基本單位,采用計(jì)算機(jī)語言描述,對(duì)象是由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)構(gòu)成。
對(duì)象包含三個(gè)基本要素,分別是對(duì)象標(biāo)識(shí)、對(duì)象狀態(tài)和對(duì)象行為。
每一個(gè)對(duì)象必須有一個(gè)名字以區(qū)別于其他對(duì)象,這就是對(duì)象標(biāo)識(shí);狀態(tài)用來描述對(duì)象的某些特征;對(duì)象行為用來封裝對(duì)象所擁有的業(yè)務(wù)操作。
舉例說明,對(duì)于教師Joe而言,包含性別、年齡、職位等個(gè)人狀態(tài)信息,同時(shí)還具有授課的行為特征,那么Joe就是封裝后的一個(gè)典型對(duì)象。
2.類
類是現(xiàn)實(shí)世界中實(shí)體的形式化描述,類將該實(shí)體的數(shù)據(jù)和函數(shù)封裝在一起。類的數(shù)據(jù)也叫屬性、狀態(tài)或特征,它表現(xiàn)類靜態(tài)的一面。類的函數(shù)也叫功能、操作或服務(wù),它表現(xiàn)類動(dòng)態(tài)的一面。
Joe是一名教師,也就擁有了教師的特征,這個(gè)特征就是教師這個(gè)類所特有的,具體而言,共同的狀態(tài)通過屬性表現(xiàn)出來,共同的行為通過操作表現(xiàn)出來,如圖3-1所示。
3.類和對(duì)象的關(guān)系
對(duì)象是類的實(shí)際例子。如果將對(duì)象比作房子,那么類就是房子的設(shè)計(jì)圖紙。
例如,銀行里所有儲(chǔ)戶的賬戶,可以抽象為賬戶類。用自然語言描述賬戶類如下:
類 賬戶
(
屬性:
存款人姓名;
身份證號(hào)f
開戶日期j
賬號(hào)j
密碼j
賬上余額j
行為:
存放(),
取款()j
}
用計(jì)算機(jī)語言表示賬戶類,命名賬戶類為ACCOUNT:
Class ACCOUNT
{
Attribute:
n ame;
ID Number;
date;
Account_Number;
pasSword;
total;
Function:
Save c)j
Withdraw(1,
}
賬戶類的對(duì)象,可以是一個(gè)個(gè)具體的儲(chǔ)戶如張三工行的賬戶、張三建行的賬戶、李四工行的賬戶。用計(jì)算機(jī)語言描述如下:
Class ACCOUNT ZhangSan ICBCAccount;ZhangSan CBCAccount;LiSi ICaCAccount:
----
類和對(duì)象的關(guān)系可以總結(jié)為:
(1)每一個(gè)對(duì)象都是某一個(gè)類的實(shí)例。
(2)每一個(gè)類在某一時(shí)刻都有零或更多的實(shí)例。
(3)類是靜態(tài)的,它們的存在、語義和關(guān)系在程序執(zhí)行前就已經(jīng)定義好了,對(duì)象是動(dòng)態(tài)的,它們?cè)诔绦驁?zhí)行時(shí)可以被創(chuàng)建和刪除。
(4)類是生成對(duì)象的模板。
4.抽象
抽象是通過特定的實(shí)例抽取共同特征以后形成概念的過程。它強(qiáng)調(diào)主要特征,忽略次要特征。一個(gè)對(duì)象是現(xiàn)實(shí)世界中一個(gè)實(shí)體的抽象,一個(gè)類足一組對(duì)象的抽象,抽象是一種單一化的描述,它強(qiáng)調(diào)給出與應(yīng)用相關(guān)的特性,拋棄不相關(guān)的特性。
5.封裝
封裝是將相關(guān)的概念組成一個(gè)單元,然后通過一個(gè)名稱來引用它‘。面向?qū)ο蠓庋b是將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝成一個(gè)整體對(duì)象,對(duì)數(shù)據(jù)的訪問或修改只能通過對(duì)象對(duì)外提供的接口進(jìn)行。
對(duì)于銀行賬戶類而言,有取款和存款的行為特征,但實(shí)現(xiàn)細(xì)節(jié)對(duì)于客戶而言并不可見,所以在進(jìn)行ATM提款交易的過程中,我們并不知道交易如何進(jìn)行,對(duì)應(yīng)賬戶是如何保存狀態(tài)的,這就體現(xiàn)了對(duì)象的封裝。
6.繼承
繼承表示類之間的層次關(guān)系,這種關(guān)系使得某類對(duì)象可以繼承另外一類對(duì)象的特征(attributes)和能力(operations),繼承又可分為單繼承和多繼承,單繼承是子類只從一個(gè)父類繼承,而多繼承中的子類可以從多于一個(gè)的父類繼承,Java是單繼承的語言,而C++允許多繼承。
假設(shè)類B繼承類A,即類B中的對(duì)象具有類A的一切特征(包括屬性和操作)。
類A稱為基類或父類或超類,類B稱為類A的派生類或子類,類B在類A的基礎(chǔ)上還可以有一些擴(kuò)展。
如圖3-2所示,Dog和Cat類都是從Mammal繼承而來,具有父類的eyeColor屬性特征,因此在子類中就下用重復(fù)指定eyeColor這個(gè)屬性。
7.多態(tài)
多態(tài)性是一種方法,這種方法使得在多個(gè)類中可以定義同一個(gè)操作或?qū)傩悦?,并在每個(gè)類中可以有不同的實(shí)現(xiàn)。多態(tài)性使得一個(gè)屬性或變量在不同的時(shí)期可以表示不同類的對(duì)象。
如圖3-3所示,Rectangle和Circle都繼承于Shape,對(duì)于Shape而言,會(huì)有g(shù)etArea0的操作。但顯而易見,RectaI y;le和Circle的getArea()方法的實(shí)現(xiàn)是完全不一樣的,這就體現(xiàn)了多態(tài)的特征。
8.接口
所謂接口就是對(duì)操作規(guī)范的說明。接口只是說明操作應(yīng)該做什么( What),但沒有定義操作如何做( How)。接口可以理解成為類的一個(gè)特例,它只規(guī)定實(shí)現(xiàn)此接口的類的操作方法,而把真正的實(shí)現(xiàn)細(xì)節(jié)交由實(shí)現(xiàn)該接口的類去完成。
接口在面向?qū)ο蠓治龊驮O(shè)計(jì)過程中起到了至關(guān)重要的橋梁作用,系統(tǒng)分析員通常先把有待實(shí)現(xiàn)的功能封裝并定義成接口,而后期程序員依據(jù)此接口進(jìn)行編碼實(shí)現(xiàn)。
9.消息
消息(Message)是對(duì)象間的交互手段,其形式如下:
Message: [dest.op,paraJ
其中dest指目標(biāo)對(duì)象Destination Object,op指操作Operation,para指操作需要的參數(shù)Parameters。
10.組件
組件是軟件系統(tǒng)可替換的、物理的組成部分,它封裝了實(shí)現(xiàn)體(實(shí)現(xiàn)某個(gè)職能).并提供了一組接口的實(shí)現(xiàn)方法??梢哉J(rèn)為組件是一個(gè)封裝的代碼模塊或大粒度的運(yùn)行對(duì)的模塊,也可將組件理解為具有一定功能、能夠獨(dú)立工作或同其他組件組合起來協(xié)詞工作的對(duì)象。
對(duì)于組件,應(yīng)當(dāng)按可復(fù)用的要求進(jìn)行設(shè)計(jì)、實(shí)現(xiàn)、打包、編寫文檔。組件應(yīng)當(dāng)是內(nèi)聚的,并具有相當(dāng)穩(wěn)定的公開的接口。
為了使組件更切合實(shí)際、更有效地被復(fù)用,組件應(yīng)當(dāng)其各“可變性”(variability),以提高其通用性。組件應(yīng)向復(fù)用者提供一些公共“特性”,另一方面還要提供可變的“特性”。針對(duì)不同的應(yīng)用系統(tǒng),只需對(duì)其可變部分進(jìn)行適當(dāng)?shù)恼{(diào)節(jié),復(fù)用者要根據(jù)復(fù)用的具體需要,改造組件的可變“特性”,即“客戶化”。
11.模式
模式是一條由三部分組成的規(guī)則,它表示了一個(gè)特定環(huán)境、一個(gè)問題和一個(gè)解決方案之間的關(guān)系。每一個(gè)模式描述了一個(gè)不斷重復(fù)發(fā)生的問題,以及該問題的解決方案。這樣就能一次又一次地使用該方案而不必做重復(fù)勞動(dòng)。
將設(shè)計(jì)模式引入軟件設(shè)計(jì)和開發(fā)過程的目的在于充分利用已有的軟件開發(fā)經(jīng)驗(yàn),這是因?yàn)樵O(shè)計(jì)模式通常是對(duì)于某一類軟件設(shè)計(jì)問題的可重用的解決方案。
設(shè)計(jì)模式使得人們可以更加簡(jiǎn)單和方便地去復(fù)用成功的軟件設(shè)計(jì)和體系結(jié)構(gòu),從而能夠幫助設(shè)計(jì)者更快更好地完成系統(tǒng)設(shè)計(jì)。
12.復(fù)用
軟件復(fù)用是指將已有的軟件及其有效成分用于構(gòu)造新的軟件或系統(tǒng)。組件技術(shù)是軟件復(fù)用實(shí)現(xiàn)的關(guān)鍵。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |