第一章,對象導言

程序是什麼?

程序是寫給計算機執行的,一般看來是要用來做一件事情的。

 

程序設計:

寫程序的一種方式方法,怎麼寫都行,只要計算機能執行就行。所以有了“彙編”、“過程式程序設計”、“面向對象程序設計”。

 

以前學過C語言,但沒有怎麼想是怎麼回事,記得可以讓計算機爲你實現什麼數學運算、求解什麼數學問題、用“*”符號輸出個“心”的圖案等。

 

讀了第一章,才發現以前到處說到的“過程型程序設計”原來就是人類爲了計算機能執行一件事所進行程序編寫與構造的一種方式罷了。其核心一是“數據的定義”和“函數過程的執行”。之所以“過程型程序設計”會被“面向對象型程序設計”所替代,究其原由還是因爲“面向對象”更符合人類的方式。(有一天計算機可以像人類那想思考問題時,我想我們都不用編碼了)。

 

在計算機的世界裏,它只知道0和1 。而在人類的世界裏,我們的概念是具體的事物,可以理解爲“對象”。其實道理一樣,計算機“他”認爲0和1是它能明白的東東,而我們人不行,我們得通過“轉換”才能明白它的含義。

 

抽象其實就是在簡化問題,不論是哪個領域,都有這樣的共性。

 

計算機將它的世界抽象到了0和1兩個(當然是人類賦予計算機的)。

人類不能將世界抽象到0和1,因爲它們對人沒有意義,人類要將事物抽象爲更活生生的東西,那就是對象了。

 

面向對象的程序設計到今天看來應該是一種必然,原因很多,在我看來它符合了人的思維方式,生產率自然會提高。這樣一來,那麼採用面向對象方式建立起來的語言(C++、Java、C#等)理所當然的會被人們廣爲使用。

 

其實,說到底,計算機是人類的超級工具。人類解決問題的方式用人的思維方式來做當然是最好不過的了。

人類會提出問題、分析問題、解決問題。重要的是問題的提出是人,分析問題是人,解決問題是藉助計算機這個工具,那麼選擇用“面向對象”的方式來設計和解決問題當然是不二選擇。

 

幾個關鍵的問題:

人、計算機、範圍(域)(空間)、問題空間、解題空間、術語。

 

過程式程序設計:從計算機的角度求解問題,方便了計算機,但人不方便,求解的過程又要人來做,你會選擇這樣嗎?

面向對象式程序設計:從人的角度來求解問題,人面對的是類、對象、繼承、多態等人易理解的模型,我會選擇,你呢?

 

編譯器的確是個好東東,計算機就像是個外星人,它很強大,能方便人對問題的求解,但人類不願意用外星語(0和1)與它直接打交道,讓語言編譯器爲我們做好了。說到底,人就是會想辦法方便自己。

 

換了個角度看程序設計,覺得挺有意思的。不是C++帶給我的,是人們求解的方式帶給我的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章