歐靜敏,何銀川(廣東南方職業學院信息技術系,江門 529000)
面向對象程序設計和設計技術研究
歐靜敏,何銀川
(廣東南方職業學院信息技術系,江門 529000)
隨著時代的不斷發展與進步,我國計算機科學技術方面的發展逐漸加快,已經成為當今社會中科學技術的主旋律,成為推動社會經濟、政治、軍事、文化等各方面發展的主要動力。其中,面向對象技術作為目前應用最廣泛的計算機軟件設計技術之一,為信息技術的革新做出了巨大的貢獻。
1.1面向對象技術的概念
自計算機誕生以來,社會發展迅速,也越來越復雜,對計算機的要求與需求因此越來越高,在比較復雜的系統進行設計時,傳統的計算機應用軟件、設計思想、程序編寫方法便會遠遠不能滿足設計需求。因此,計算機的軟件與硬件的配合程度便隨著時間的推移越來越低。在此情況下,面向對象技術應運而生。面向對象技術的程序設計的主體思想來源于Simula語言,并基于Simula語言進行相關的優化以及完善。主要是通過在再次提高程序代碼應用廣泛、可拓展應用領域、可再次應用、可自動生成程序等各方面性能的同時,提高軟件的性能與壽命,減少軟件運行的出錯率,從而減少由于維護系統所花費的開銷。因此,面向對象的技術是一種新穎的、能夠在很大程度上有效地解決計算機軟件與硬件不匹配的問題的軟件設計與構造技術,其主要特點是以對象為基本的設計理念,將程序中涉及到的數據與對數據的相關操作步驟進行結合,集中封裝成為一個整體,通過利用消息從而對對象的相關程序處理工作的執行與否進行控制,利用數據抽象技術,以及信息隱蔽技術,將整個封裝整體進行抽象操作,形成一種新的概念,即為“類”(一種新型的數據類型,即指在計算機中對于現實世界以及思維世界中的實體所產生的反映,不占有任何內存),面向對象技術中需要對“類”進行相應的多方面的考量,在進行軟件設計的過程中亦要了解不同類之間的相互聯系與區別,將類的重用性進行良好的控制。
1.2面向對象技術的主要特征
面向對象技術已經成為當今應用最廣泛的計算機軟件設計方法和語言。在目前的幾乎每一種計算機軟件的設計中,都會或多或少地涉及到面向對象技術的相關應用、原理、程序編寫方式方法,或是面向對象技術的主要思想。其主要原因是面向對象技術具有幾大特點,分別是封裝性、繼承性,以及多態性。下面分別針對這三種特點進行簡要的闡述。
(1)封裝性:封裝是指將一個計算機系統中的數據以及與這個數據相關的一切操作語言 (即描述每一個對象的屬性以及其行為的程序代碼)組裝到一起,一并封裝在一個有機的實體中,把它們封裝在一個“模塊”中,也就是一個類中,為軟件結構的相關部件所具有的模塊性提供良好的基礎。在面向對象技術的相關原理以及程序語言中,封裝的最基本單位是對象,而使得軟件結構的相關部件的實現“高內聚、低耦合”的“最佳狀態”便是面向對象技術的封裝性所需要實現的最基本的目標。對于用戶來說,對象是如何對各種行為進行操作、運行、實現等細節是不需要刨根問底了解清楚的,用戶只需要通過封裝外的通道對計算機進行相關方面的操作即可。大大地簡化了操作的步驟,使用戶使用起計算機來更加高效、更加得心應手。
(2)繼承性:繼承性是面向對象技術中的另外一個重要特點,其主要指的是兩種或者兩種以上的類之間的聯系與區別。繼承,顧名思義,是后者延續前者的某些方面的特點,而在面向對象技術則是指一個對象針對于另一個對象的某些獨有的特點、能力進行復制或者延續。如果按照繼承源進行劃分,則可以分為單繼承(一個對象僅僅從另外一個對象中繼承其相應的特點)與多繼承(一個對象可以同時從另外兩個或者兩個以上的對象中繼承所需要的特點與能力,并且不會發生沖突等現象);如果從繼承中包含的內容進行劃分,則繼承可以分為四類,分別為取代繼承(一個對象在繼承另一個對象的能力與特點之后將父對象進行取代)、包含繼承 (一個對象在將另一個對象的能力與特點進行完全的繼承之后,又繼承了其他對象所包含的相應內容,結果導致這個對象所具有的能力與特點大于等于父對象,實現了對于父對象的包含)、受限繼承、特化繼承。
多態性:從宏觀的角度來講,多態性是指在面向對象技術中,當不同的多個對象同時接收到同一個完全相同的消息之后,所表現出來的動作是各不相同的,具有多種形態;從微觀的角度來講,多態性是指在一組對象的一個類中,面向對象技術可以使用相同的調用方式來對相同的函數名進行調用,即便這若干個具有相同函數名的函數所表示的函數是不同的。
2.1面向對象程序設計的設計原理
面向對象技術是對計算機的結構化方法的深入、發展和補充,在保障進行良好的計算機軟件的需求設計的同時,也需要盡可能實現利用低成本來開發出高質量的應用軟件的目標。消息是傳遞一個對象與另一個對象之間的信息,實現兩者進行通信的橋梁,消息鏈負責指定功能無條件的執行,而計算機軟件的主程序則負責對消息進行篩選(哪些可以接受、可以執行,哪些則需要摒棄,不可帶入),軟件開發主要由以下幾個方面組成,分別為需求定義、制定計劃、軟件的功能設計、軟件的功能實現、驗證和確認,這五個方面是最基本的環節,缺一不可。
2.2面向對象程序設計的設計特點
在面向對象程序設計的設計過程中,設計的第一步——需求分析,以及制定計劃兩個方面是需要用戶參與的重點階段,設計者們需要對目前的網絡用戶進行普查,調查內容包括廣大用戶對目前互聯網的網絡應用的主要看法,預計提出相應的看法、意見與建議。每一個計算機軟件的設計與研究開發都是以實現用戶的需求為目標,如果在需求分析與制定計劃兩方面出現任何差錯,都將會使得后期的軟件功能的設計、功能的實現,以及驗證和確認等方面產生很多的矛盾和難題,為設計的準確性、實用性大大減分。因此,能夠進行一個完善的、全面的計算機網絡用戶調查,并依此進行相關計劃的制定,對于一個面向對象技術的設計來說是十分重要的。另外,用戶的需求一般不是確定的,而是由于某些原因再進行事實的變動的,用戶們很有可能隨時地、逐步地對軟件的功能等方面提出新的要求,而在的設計好的軟件中,利用從上至下的原始的方法進行修改是一件極其困難的事情,90%的情況下,軟件的設計最后會失敗。而在面向對象的軟件設計中,由于面向對象的計算機軟件技術采用的是自底向上的設計與開發方式,因此,在設計好的計算機軟件中進行簡單的修改相對來說是比較容易的。與此同時,當用戶對于軟件的要求與運行可能產生的結構不是十分清楚的時候,運用面向對象的相關技術可以為用戶們虛擬一個軟件中的對象,從用戶的角度出發,依據用戶所提出的要求構造一個虛擬的對象,為用戶提供可能產生的現象,使用戶能夠對每一個要求做到了解透徹,同時對軟件設計人員的相關工作的展開與進行也可以產生積極的作用。
2.3面向對象程序設計的設計方法
面向對象的程序設計是以結構化程序設計以及數據抽象概念為基礎的,將二者有機地結合起來,用數據取代了傳統的數據操作,作為設計的核心對象,使得數據與對于數據的操作是在一個基本水平上連接的這個軟件系統中的特點更加鮮明。從生活中的角度來看,面向對象的程序設計應該善于利用操作對數據結構進行結合,為每一組同類的對象分配一定的規定動作,并且要求不能夠對同一組對象進行不同的操作,也不能夠對不同組的對象進行相同的操作。面向對象的程序設計為每一種數據類型都指定了相應的性質以及其主要行為,將抽象這個概念合理地運用到計算機軟件的設計中,使人們能夠有效地、確切地了解每一種數據類型,可以預測到它們的具體責任與行為是什么。例如,一份文件可以被傳到網絡中,可以被讀取、修改、保存,一個自然數可以進行相加、相乘等運算,相反,如果將二者進行轉換,則會發生很大的矛盾,因為一個自然數不能夠被傳到網絡中、可以被讀取、修改或者保存,而一份文件也不能夠進行加、減、乘、除等運算。
面向對象語言是根據當今世界上的其他多種計算機語言進行綜合和轉換的。例如,面向對象語言中的交互式開發環境、動態約束的概念,便是由上個世紀五十年代問世的一種人工智能語言——LISP語言中引入的;類以及繼承的概念便是由上個世紀六十年代的程序仿真語言——Simula語言中引入進來的;而數據的抽象概念則是由上個世紀七十年代最先涉及到周祥概念的語言——CLU語言中引入的。沒什么東西的程序設計需要面向對象語言的大力推進,只有掌握牢固面向對象語言的精髓,才能夠高效率、高質量地進行軟件的設計與開發,達到事半功倍的效果。
3.1面向對向程序設計在C++語言、Delphi以及oracle中的應用
在程序進行編譯之前,需要提前對模板進行解析,在C++中,編譯程序的模板是十分安全可靠的,C++程序設計的最佳模板已經被公認為是標準模板庫——STL,從宏觀的角度來說,標準模板庫(STL)可以分為以下三個類別,分別為:算法類、容器類、迭代器類。其中,容器類是編譯程序的模板的最原始使用方法。在Delphi中,面向對象程序設計主要通過在所涉及的軟件系統與程序中加入關鍵字 (例如,virtual虛擬的、dynamic動態的,等等),將該方法的模式設置任意指定為動態的方法,或者虛擬結構的方法,從而為軟件設計的多態性提供相應的大力支持。當Overload使用時,Overload的關鍵字必須出現在每一個同名的過程中,但是Overload不需要對方法進行設置;當Override使用的時候,規定其類型必須要被定義為虛擬方法與動態方法中的一個。除了動態方法與虛擬方法,另外一個相對比較高效的方法就是抽象方法,僅僅在對已經被重載的類與對象進行抽象調用,才能夠使得抽象方法有意義。由此可見,在Delphi中,面向對象程序設計的主要應用是為其提供抽象的方法,諸如虛擬方法、動態方法、抽象方法等,其中,抽象方法沒有對函數體進行定義的功能。在Oracle中,面向對象程序設計的應用主要體現在其父類型與子類型的繼承關系中。為了能夠使得子類型在繼承的過程中,對父類型的特點與功能進行全方位的繼承,從而省去了利用主外鍵的關系來模仿父類型與子類型之間的關系的繁瑣步驟。在此過程中,需要在子類型的聲明的末尾處,將其定義為“not final”,以防止在缺省情況下將對象誤認為成final,因此,面向對象程序設計為Oracle提供了極大的便利與支持。
3.2面向對象程序設計在金融信息系統中的應用
隨著社會的不斷發展,信息技術已經廣泛地應用于社會的各個方面,在金融管理的信息系統中,隨著金融行業的不斷發展,企業的信息技術的應用范圍逐漸拓廣,工作量與任務量逐漸加大,與此同時,軟件的智能化、綜合性、高效性的需求越來越明顯。因此,面向對象的程序設計便成為社會中諸多金融行業所急需的技術。面向對象的程序設計可以有效地針對金融行業中的財務管理、人力資源管理、財務分析管理等方面進行相應的程序設計,來滿足企業中各個方面的管理需要,從而大大提高金融企業中的業務運行效率與質量。與此同時,甚至在金融企業中的其他應用系統,例如相關部門工資管理情況以及下發情況、人員出勤情況以及工作表現情況、納稅繳稅情況以及水電費的繳費情況等各種需求,面向對象的程序設計都可以進行適當的處理與解決。另外,通過面向對象的程序設計出的成熟的計算機信息技術的金融行業的相關管理軟件更可以將企業內部的資金流動、人員流動、資源流動,以及信息流動有機地結合起來,并對企業外部的信息進行實時的搜集,使得企業內部資源與現狀同企業外部的相應方面的資源與現狀實現形成一個整體的供應與使用網絡,實現對于公司的全面、一體化的高效管理。
由本文可以看出,面向對象的程序設計使信息技術的應用更加嚴謹、廣泛,給人們的生活、工作,以及學習都產生了潛移默化的影響,為社會帶來了極大的革新與改變。
[1]狄博.基于Python語言的面向對象程序設計課程教學[J].計算機工程與科學,2014(1):15~16
[2]鄧勁松,石媛媛,陳利蘇,王珂,祝錦霞.基于近紅外傳感器和面向對象光譜分割技術的田間棉株識別與提取[J].光譜學與光譜分析,2010(7):12~13
[3]倪楓,王明哲,郭法濱,宋阿妮.基于面向對象思想的SoS體系結構設計方法[J].系統工程與電子技術,2010,(3):11-12.
[4]譚林平.深入解析面向過程和面向對象[J].科教文匯,2013(9):45~46
[5]張磊,楊玲玲,張曉芳.面向對象思維引導過程中的問題求解[J].計算機教育,2014(13):107~108
Object-Oriented;Programming;System Technology
Research on Object-Oriented Programming and Design Technology
OU Jing-min1,HE Yin-chuan2
(Department of Information Technology,Guangdong Nanfang Vocational College,Jiangmen 529000)
1007-1423(2015)10-0056-04
10.3969/j.issn.1007-1423.2015.10.016
歐靜敏(1986-),女,廣東吳川人,本科,助教,研究方向為面向對象、程序設計、系統技術
2015-02-10
2015-03-11
面向對象的根本設計方法是以對象為中心,對實際生活中的相關內容進行分類、模擬,以及設計。以面向對象技術程序設計為主要研究對象,將面向對象技術的理論知識與實際的應用相結合,簡要介紹面向對象技術的主要原理、相關理論以及主要特征,隨后對面向對象的程序設計技術研究方法與策略以及設計的應用進行詳細的討論。
面向對象;程序設計;系統技術
何銀川(1984-),男,河南周口人,碩士研究生,助教,研究方向為計算機教育、軟件工程、教學設計
The root design method of the object-oriented is based on object-centric,classifies,it simulates and designs the related content in actual life.Focuses on the technology of object-oriented programming,and combines the object oriented technology theoretical knowledge with practical application.Briefly introduces the main principle of object oriented technology,related theory and main characteristics,then discusses the object-oriented programming technology research method,strategy and the application of design in details.