在開始部分,請看官非常非常耐心地閱讀下面幾個枯燥的術(shù)語解釋,本來這不符合本教程的風格,但是,請看官諒解,因為列位將來一定要閱讀枯燥的東西的。這些枯燥的屬于解釋,均來自維基百科。
1、問題空間
問題空間是問題解決者對一個問題所達到的全部認識狀態(tài),它是由問題解決者利用問題所包含的信息和已貯存的信息主動地構(gòu)成的。
一個問題一般有下面三個方面來定義:
•初始狀態(tài)——一開始時的不完全的信息或令人不滿意的狀況;
•目標狀態(tài)——你希望獲得的信息或狀態(tài);
•操作——為了從初始狀態(tài)邁向目標狀態(tài),你可能采取的步驟。
這三個部分加在一起定義了問題空間(problem space)。
2、對象
對象(object),臺灣譯作物件,是面向?qū)ο螅∣bject Oriented)中的術(shù)語,既表示客觀世界問題空間(Namespace)中的某個具體的事物,又表示軟件系統(tǒng)解空間中的基本元素。
在軟件系統(tǒng)中,對象具有唯一的標識符,對象包括屬性(Properties)和方法(Methods),屬性就是需要記憶的信息,方法就是對象能夠提供的服務(wù)。在面向?qū)ο螅∣bject Oriented)的軟件中,對象(Object)是某一個類(Class)的實例(Instance)。
3、面向?qū)ο?/p>
面向?qū)ο蟪绦蛟O(shè)計(英語:Object-oriented programming,縮寫:OOP)是一種程序設(shè)計范型,同時也是一種程序開發(fā)的方法。對象指的是類的實例。它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴展性。
面向?qū)ο蟪绦蛟O(shè)計可以看作一種在程序中包含各種獨立而又互相調(diào)用的對象的思想,這與傳統(tǒng)的思想剛好相反:傳統(tǒng)的程序設(shè)計主張將程序看作一系列函數(shù)的集合,或者直接就是一系列對電腦下達的指令。面向?qū)ο蟪绦蛟O(shè)計中的每一個對象都應(yīng)該能夠接受數(shù)據(jù)、處理數(shù)據(jù)并將數(shù)據(jù)傳達給其它對象,因此它們都可以被看作一個小型的“機器”,即對象。
目前已經(jīng)被證實的是,面向?qū)ο蟪绦蛟O(shè)計推廣了程序的靈活性和可維護性,并且在大型項目設(shè)計中廣為應(yīng)用。 此外,支持者聲稱面向?qū)ο蟪绦蛟O(shè)計要比以往的做法更加便于學習,因為它能夠讓人們更簡單地設(shè)計并維護程序,使得程序更加便于分析、設(shè)計、理解。反對者在某些領(lǐng)域?qū)Υ擞枰苑裾J。
當我們提到面向?qū)ο蟮臅r候,它不僅指一種程序設(shè)計方法。它更多意義上是一種程序開發(fā)方式。在這一方面,我們必須了解更多關(guān)于面向?qū)ο笙到y(tǒng)分析和面向?qū)ο笤O(shè)計(Object Oriented Design,簡稱OOD)方面的知識。
下面再引用一段來自維基百科中關(guān)于OOP的歷史。
代碼如下:
面向?qū)ο蟪绦蛟O(shè)計的雛形,早在1960年的Simula語言中即可發(fā)現(xiàn),當時的程序設(shè)計領(lǐng)域正面臨著一種危機:在軟硬件環(huán)境逐漸復雜的情況下,軟件如何得到良好的維護?面向?qū)ο蟪绦蛟O(shè)計在某種程度上通過強調(diào)可重復性解決了這一問題。20世紀70年代的Smalltalk語言在面向?qū)ο蠓矫婵胺Q經(jīng)典——以至于30年后的今天依然將這一語言視為面向?qū)ο笳Z言的基礎(chǔ)。
新聞熱點
疑難解答
圖片精選