4.1 兩種思維方式 4.2 對象

4.1  兩種思維方式
人們起初使用計算機來進行科學計算,比如說:計算級數和,計算積分值。那時,程序要處理的都是帶小數點的數字。後來,人們要處理文本,有點麻煩,好在文字也可以轉換成數字。這兩個時期,編寫程序的思想是:一個步驟,一個步驟地告訴計算機如何做,做完一大段步驟,就算完成了一個功能模塊。
再後來,人們希望計算機能應用在管理中。比如說:機場管理。一個大都市的民航機場,每天有上千架飛機起落,乘客上萬,行李、包裹無數,乘務、地勤人員上千,安檢信息上萬,氣象信息上萬……這樣百萬、千萬的數據要及時處理,靠舊的編程思維是無法實現的。
爲了應付越來越複雜的管理應用,人們轉變編寫程序的思想:
(1). 將一架飛機看作飛機類事物的一個具體實例,將一座塔臺看作塔臺類事物的一個具體實例,將一名乘客看作乘客類事物的一個具體實例……
(2). 一個具體實例有變化的時候,就自己主動傳遞消息給相關聯的具體實例;
(3). 相關聯的具體實例收到消息後,根據之前定好的策略,作出應有的反應(迴應,轉發……)。
初期的編程思想是:以“如何做”爲指導來編寫代碼。這時期的編程語言叫過程語言,提倡結構化地設計程序代碼。代表語言是FORTRAN和C。
現在的編程思想是:以“誰將被影響”爲指導來編寫代碼。叫面向對象的編程語言,以類爲模塊,以消息來驅動程序的執行。代表語言是C++ 和Java。
 

4.2  對象
英文Object ,計算機業界現在已經習慣翻譯爲“對象”;口語化一些,中文的意思就是“事物”。
“事物”這個詞有點抽象,你當然可以具體到人,或是具體到交通工具。人可以再具體一些,學生?工人?如果是學生,叫什麼名字?

 
每個事物都有一些特點,人有身高,體重,在程序中我們稱之爲屬性;還可以有一些行爲,人要吃飯,睡覺,在程序中我們稱之爲方法。
學生是人,自然有身高,體重,自然要吃飯,睡覺。如果你把人看作一類事物,把學生看作一類事物;那麼,人是父類型,學生是子類型。子類型從父類型自然得到屬性、方法,我們稱之爲繼承。
學生要考試,工人不要;工人拿工資,學生不拿(一般而言)。同一個父類,不同的子類有不同的行爲和狀態,我們稱之爲多態。
人們編寫程序,也就是在描述一類事物的特點(屬性)、行爲(方法)。有時候是模擬描述自然界中已有的一類事物,還有時候是創造地描述自然界中沒有的一類事物。
當人們決定了代碼世界中一類事物的屬性、方法,在代碼世界中,這類事物的屬性、方法只有定義代碼的人知道,其它的類是不知道的。這就是封裝。
封裝、繼承、多態是面向對象編程的三個本質特徵。
(人們可以決定代碼世界中一類事物的屬性、方法,當然可以修改代碼世界中一類事物的屬性、方法,而且可以委託其它的類來修改,甚至刪除。這是動態語言超越靜態語言之處。由於代碼是一直運行着,與其它代碼一直交互着,修改、刪除應該慎重,避免產生副作用)。

完整閱讀,請看我寫的 Ruby語言中文教程all in one    
 


發佈了0 篇原創文章 · 獲贊 0 · 訪問量 579
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章