二級共公基礎知識教程第2章下

字號:

2.3面向對象的程序設計
    一、關于面向對象方法
    面向對象方法的本質,就是主張從客觀世界固有的事物出發(fā)來構造系統(tǒng),提倡用人類在現(xiàn)實生活中常用的思維方法來認識、理解和描述客觀事物,強調最終建立的系統(tǒng)能夠映射問題域,也就是說,系統(tǒng)中的對象以及對象之間的關系能夠如實地反映問題域中固有事物及其關系。
    優(yōu)點:1、與人類習慣的思維方法一致
    面向對象方法和技術以對象為核心。對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接的關系。對象之間通過傳遞消息互相聯(lián)系,以模擬現(xiàn)實世界中不同事物彼此之間的聯(lián)系。
    面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,這種方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它強調模擬現(xiàn)實世界中的概念而不強調算法,它鼓勵開發(fā)者在軟件開發(fā)的絕大部分過程中都用應用領域的要領去思考。
    2、穩(wěn)定性好
    3、可重用性好
    軟件重用是指在不同的軟件開發(fā)過程中重復作用相同或相似軟件元素的過程。重用是提高軟件生產率的最主要的方法。
    4、易于開發(fā)大型軟件產品
    5、可維護性好
    (1)用面向對象的方法開發(fā)的軟件穩(wěn)定性比較好
    (2)用面向對象的方法開發(fā)的軟件比較容易修改;
    (3)用面向對象的方法開發(fā)的軟件比較容易理解。
    (4)易于測試和調試。
    二、面向對象方法的基本概念
    1、對象(object)
    對象是面向對象方法中最基本的概念。對象可以用來表示客觀世界中的任何實體,也就是說,應用領域中有意義的、與所要解決的問題有關系的任何事物都可以作為對象,它既可以是具體的物理實體的抽象,也可以是人為的概念,或者是任何有明確邊界的意義的東西??傊?,對象是對問題域中某個實體的抽象,設立某個對象就反映軟件系統(tǒng)保存有關它的信息并具有與它進行交互的能力。
    面向對象的程序設計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個實體,是構成系統(tǒng)的一個基本單位,它由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。
    對象可以做的操作表示它的動態(tài)行為,在面向對象分析和面向對象設計中,通常把對象的操作也稱為方法或服務。
    屬性即對象所包含的信息,它在設計對象時確定,一般只能通過對象的操作來改變。
    操作描述了對象執(zhí)行的功能,若通過消息傳遞,還可以為其他對象使用。操作的過程對外是封閉的,即用戶只能看到這一操作實施后的結果。這相當于事先已經設計好的各種過程,只需要調用就可以了,用戶不必去關心這一過程是如何編寫的。事實上,這個過程已經封裝在對象中,用戶也看不到。對的這一特性即是對象的封裝性。
    對象有如下一些基本特點:
    (1) 標識惟一性。指對象是可區(qū)分的,并且由對象有的內在本質來區(qū)分,而不是通過描述來區(qū)分。
    (2) 分類性。指可以將具有相同屬性的操作的對象抽象成類。
    (3) 多太性。指同一個操作可以是不同對象的行為。
    (4) 封裝性。從外面看只能看到對象的外部特性,即只需知道數(shù)據(jù)的取值范圍和可以對該數(shù)據(jù)施加的操作,根本無需知道數(shù)據(jù)的具體結構以及實現(xiàn)操作的算法。對象的內部,即處理能力的實行和內部狀態(tài),對外是不可見的。從外面不能直接使用對象的處理能力,也不能直接修改其內部狀態(tài),對象的內部狀態(tài)只能由其自身改變。
    (5) 模塊獨立性好。對象是面向對象的軟件的基本模塊,它是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對象是以數(shù)據(jù)為中心的,操作圍繞對其數(shù)據(jù)所需做的處理來設置,沒有無關的操作從模塊的獨立性考慮,對象內部各種元素彼此結合得很緊密,內聚性強。
    2、類(Class)和實例(Instance)
    將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,它描述了屬于該對象類型的所有對象的性質,而一個對象則是其對應類的一個實例。
    要注意的是,當使用“對象”這個術語時,既可以指一個具體的對象,也可以泛指一般的對象,但是,當使用“實例”這個術語時,必然是指一個具體的對象。
    例如:Integer是一個整數(shù)類,它描述了所有整數(shù)的性質。因此任何整數(shù)都是整數(shù)類的對象,而一個具體的整數(shù)“123”是類Integer的實例。
    由類的定義可知,類是關于對象性質的描述,它同對象一樣,包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。
    3、消息(Message)
    面向對象的世界是通過對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為“消息”。消息是一個實例與另一個實例之間傳遞信息,它請示對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流的控制流。消息的使用類似于函數(shù)調用,消息中指定了某一個實例,一個操作名和一個參數(shù)表(可空)。接收消息的實例執(zhí)行消息中指定的操作,并將形式參數(shù)數(shù)與參數(shù)表中相應的值結合起來。消息傳遞過程中,由發(fā)送消息的對象(發(fā)送對象)的觸發(fā)操作產生輸出結果,作為消息傳送至接受消息的對象(接受對象),引發(fā)接受消息的對象一系列的操作。所傳送的消息實質上是接受對象所具有的操作/方法名稱,有時還包括相應參數(shù)。