• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      面向對象程序設計中的多態(tài)性

      2014-04-29 18:46:48趙學武
      電腦知識與技術 2014年21期
      關鍵詞:面向對象多態(tài)性對象

      趙學武

      摘要:面向對象程序設計是繼面向過程的結構化程序設計之后產(chǎn)生的一種新的設計方法,是目前開發(fā)大型軟件的主流方法之一。多態(tài)性是該程序設計中的重要特性之一,具有一定的復雜性和靈活性,可以增強應用程序的靈活性和可維護性,在基于面向對象的程序設計中被廣泛應用。該文首先講述了面向對象和面向對象程序設計;然后詳細闡述了面向對象程序設計中多態(tài)性的概念、分類和應用條件;最后舉例分別說明了每種多態(tài)性的應用,并對其做出了分析。

      關鍵詞:面向對象;類;對象;多態(tài)性;重載;重寫

      中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)21-5036-04

      自從1946年第一臺計算機誕生以來,計算機的發(fā)展呈現(xiàn)出驚人的速度。各種各樣的計算機也越來越深和越來越廣地影響著人類的發(fā)展。計算機由硬件和軟件組成:近年來計算機硬件的發(fā)展有目共睹,而且性價比也越來越高;計算機軟件的發(fā)展日益面向應用,也越來越精細化,靈活性和可維護性不斷增強。計算機硬件是計算機運行的物理基礎,計算機軟件是計算機運行的邏輯基礎。兩者都是計算機運行的必備條件,但是計算機軟件更加靈活,有更大范圍的人可以參與進來做設計和開發(fā)工作。因此,計算機軟件的研究是許多學者關注的一個焦點。應用軟件是計算機軟件的重要組成部分,以解決各種各樣的應用為目的。計算機程序設計方法是編寫應用軟件的主要方法,并且可以在編寫程序過程中融入設計者的設計思想,因此研究和使用計算機程序設計方法引起了許多計算機愛好者的興趣。

      在20世紀70年代之前,計算機語言僅僅建立在匯編語言和機器語言的基礎之上,而程序編寫員也必須對其使用的計算機硬件特征非常熟悉才能對開發(fā)軟件的語言程序進行代碼的編寫工作[1]。20世紀70年代產(chǎn)生了C語言,它使人們在編寫程序時不需要熟悉底層硬件,是面向過程程序設計的代表語言。面向對象程序設計在90年代作為程序設計的新方法,是目前開發(fā)大型復雜軟件的主流技術,也是計算機編程人員和相關學者研究的一個熱點。

      1 面向對象程序設計

      1.1面向對象

      現(xiàn)實世界中的對象是現(xiàn)實世界中客觀存在的實體,也是人們認識世界和改造世界的客體。面向對象程序設計中的對象是現(xiàn)實世界中對象的數(shù)字化抽象,是由描述對象的數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接的對應關系。對象是面向對象程序設計中的核心概念,面向對象應用程序功能的實現(xiàn)離不開若干個對象及其協(xié)作。

      類是面向對象程序設計中的另一個核心概念,它是對一組具有相同屬性和行為的實體的抽象描述,即它不與某一實體相對應,而是一組實體集的概念模型,是面向對象程序設計中的一種構造性的數(shù)據(jù)類型,其中相同屬性數(shù)字化為屬性(數(shù)據(jù)變量/成員變量),相同行為數(shù)字化為方法(函數(shù))。

      面向對象就是基于對象概念,以對象為中心和基本單位,通過類和繼承等構造機制,以更符合人的思維的角度來認識、理解、刻畫客觀世界,然后去設計、建構相應的軟件系統(tǒng)。面向對象方法的中心思想是將對象來模擬整個現(xiàn)實,而并非以前常用的傳統(tǒng)設計將數(shù)據(jù)和方法分開來設計[2];面向對象是一種新的設計思路,它更加現(xiàn)代化,使編程人員感到程序設計更加容易。

      1.2面向對象程序設計

      面向過程的結構化程序設計產(chǎn)生于面向對象程序設計之前,是一種自頂向下、逐步細化的程序設計思想。它的特點是以功能為中心,函數(shù)是組成程序的基本單位,而數(shù)據(jù)在面向過程的程序設計過程中經(jīng)常處于從屬地位。這種設計思想的優(yōu)點是比較容易理解和掌握,但缺點是不能夠適應復雜問題和多變的現(xiàn)實需求。

      為了適應軟件發(fā)展的新需要,面向對象程序設計就應運而生了。面向對象程序設計是一種把面向對象的思想應用于軟件開發(fā)過程中,指導開發(fā)活動的系統(tǒng)方法,是建立在“對象”概念基礎上的方法學[3]。面向對象程序設計體現(xiàn)的是一種自下而上的設計思想,其特點是以數(shù)據(jù)為中心,類是組成程序的基本單位。面向對象程序設計自上而下特性,允許設計者從問題的局部開始,在開發(fā)過程中逐步加深對系統(tǒng)的理解[4]。這種程序設計方式開發(fā)出來的程序比較靈活,可維護性強,比較適合開發(fā)大型復雜軟件,是目前較為重要的程序設計方法之一。

      封裝性、繼承性和多態(tài)性是是面向對象程序設計的三大特征,其中多態(tài)性比較復雜,并具有一定的智能性;多態(tài)性使得面向對象程序對外呈現(xiàn)出強大的處理能力,可以用來產(chǎn)生精密、精美、可擴展性的代碼[5],在應用面對程序設計語言編寫應用程序時得到了廣泛應用。因此對多態(tài)性做進一步的研究是有必要的。

      2 面向對象程序設計中的多態(tài)性

      2.1 多態(tài)性的概念

      顧名思義,多態(tài)就是一種名稱多種形態(tài)的意思[6]。在面向對象程序設計中,多態(tài)是指一個方法(函數(shù))有相同的名字,有不同的參數(shù)形式或不同的實現(xiàn)過程,可以簡單地描述為“一個接口,多個方法”。從廣義上來說所謂多態(tài)性是指論域中的某種元素有多種解釋[6],面向對象程序設計中的多態(tài)性是指同一個消息作用在不同對象或同一個對象上可以得到不同的結果。該特性的智能之處在于允許每個對象以適合自身的方式對相同的消息做出響應。多態(tài)性降低了代碼的冗余性,提高了代碼的可重用性和可擴充性。

      2.2 多態(tài)性的分類

      多態(tài)性是面向對象程序設計中最重要的特性之一,是實現(xiàn)代碼重用的重要手段。根據(jù)消息指定執(zhí)行哪個具體方法的時期的不同,分為靜態(tài)多態(tài)性和動態(tài)多態(tài)性兩類。

      1) 靜態(tài)多態(tài)性。一個方法(函數(shù))的參數(shù)類型、參數(shù)個數(shù)和參數(shù)順序統(tǒng)稱為該方法(函數(shù))的參數(shù)模式。在一個類中出現(xiàn)了若干個同名的方法(函數(shù)),它們的參數(shù)模式不同,這種現(xiàn)象稱為方法重載(overload)。在一個使用了方法重載的應用程序中,編譯系統(tǒng)在編譯階段會根據(jù)被調用方法的實際參數(shù)的情況找到與之相一致的重載方法執(zhí)行,即根據(jù)參數(shù)模式的匹配來確定執(zhí)行哪一個具體的重載方法,進而完成相應的功能。這種多態(tài)性即被稱為靜態(tài)多態(tài)性,即方法重載機制是實現(xiàn)靜態(tài)多態(tài)性的一種途徑。

      2) 動態(tài)多態(tài)性。在具有繼承關系的幾個類間,出現(xiàn)了方法首部相同,方法體不同若干個方法,這種現(xiàn)象稱為方法重寫(overwrite), 也叫方法覆蓋。在一個出現(xiàn)了方法重寫的程序中,如果子類對象調用了重寫的方法,這時在編譯時就能夠確定執(zhí)行哪個重寫方法了,即為調用該對象所屬子類中的定義的重寫方法;如果父類變量引用(指向)子類對象,這時具體執(zhí)行哪個重寫方法需要到程序運行時才能夠確定,它更能體現(xiàn)同一個消息,有不同的執(zhí)行過程和不同的執(zhí)行結果。后者被稱為動態(tài)多態(tài)性,這種多態(tài)性是通過方法重寫的機制實現(xiàn)的。

      2.3 多態(tài)性的應用條件

      面向對象程序設計中引入多態(tài)性的目的是為了實現(xiàn)代碼重用,但是應用多態(tài)性需要滿足一定的條件。靜態(tài)多態(tài)性有以下兩個應用條件:1) 在一個類的內部寫若干個重載的方法;2) 被重載的方法間要滿足方法重載的要求。動態(tài)多態(tài)性的應用在滿足以下幾個條件:1) 被重寫的方法應該分散在具有繼承關系的類間;2) 被重寫的方法要滿足方法重寫的要求;3) 父類變量引用(指向)子類對象;4) 通過父類變量調用重寫方法。只有這些條件分別被滿足,才能使用靜態(tài)多態(tài)性和動態(tài)多態(tài)性,才能更好地發(fā)揮面向對象程序設計開發(fā)大型復雜軟件的優(yōu)勢。

      3 面向對象程序設計中的多態(tài)性應用舉例

      3.1 靜態(tài)多態(tài)性應用舉例

      靜態(tài)多態(tài)性是通過在一個類中方法重載實現(xiàn)的,在面向對象的應用程序設計中的應用也比較廣泛。以Java程序設計語言為基礎,靜態(tài)多態(tài)性的應用實例如下所示:

      3.2 動態(tài)多態(tài)性應用舉例

      4 總結

      多態(tài)性是面向對象程序設計中的重要特性之一,在基于面向對象的應用程序中有著廣泛的應用。該文著重闡述了面向對象程序設計中的多態(tài)性,并通過應用實例說明和分析了多態(tài)性的實際應用。多態(tài)性在面向對象程序設計中的占有舉足輕重的地位,有必要對其做深入的研究。

      參考文獻:

      [1] 李大鵬.關于計算機軟件開發(fā)語言的研究[J].計算機光盤軟件與應用,2012(6):195-196.

      [2] 譚宇,楊華民,王鵬.面向對象軟件度量技術的分析和綜述[J].長春理工大學學報:自然科學版,2013,36(3-4):152-156.

      [3] 趙鳳芝,邢煜,王茱,等.Java程序設計案例教程[M].北京:清華大學出版社,2011:6-8.

      [4] 楊學全. Java程序設計[M]. 2版.北京:中國鐵道出版社,2011:31-36.

      [5] 陳達麗,楊根興.面向對象軟件多態(tài)交互的測試[J].計算機工程,2008,34(14):29-31.

      [6] 劉繁艷.Java多態(tài)性及其應用研究[J].軟件導刊,2008,7(7):63-65.

      猜你喜歡
      面向對象多態(tài)性對象
      神秘來電
      睿士(2023年2期)2023-03-02 02:01:09
      單核苷酸多態(tài)性與中醫(yī)證候相關性研究進展
      面向對象的計算機網(wǎng)絡設計軟件系統(tǒng)的開發(fā)
      電子測試(2018年15期)2018-09-26 06:01:34
      攻略對象的心思好難猜
      意林(2018年3期)2018-03-02 15:17:24
      面向對象的數(shù)據(jù)交換協(xié)議研究與應用
      基于熵的快速掃描法的FNEA初始對象的生成方法
      馬鈴薯cpDNA/mtDNA多態(tài)性的多重PCR檢測
      面向對象Web開發(fā)編程語言的的評估方法
      區(qū)間對象族的可鎮(zhèn)定性分析
      GlobalFiler~? PCR擴增試劑盒驗證及其STR遺傳多態(tài)性
      游戏| 泗阳县| 准格尔旗| 万荣县| 惠来县| 四川省| 基隆市| 仪征市| 万山特区| 塔城市| 洞口县| 云安县| 皋兰县| 徐水县| 九龙城区| 南开区| 饶平县| 财经| 小金县| 邵阳市| 洛隆县| 册亨县| 宝鸡市| 延寿县| 尼木县| 商河县| 隆林| 灵宝市| 晴隆县| 资中县| 阜阳市| 北海市| 义乌市| 元谋县| 马龙县| 遵化市| 东兰县| 新营市| 汉源县| 吉水县| 平昌县|