Java編程思想【1】

Alan Kay 總結了 Smalltalk 的五大基本特徵。這是第一種成功的面向對象程序設計語言,也是Java 的基礎
語言。通過這些特徵,我們可理解“純粹”的面向對象程序設計方法是什麼樣的:
(1) 所有東西都是對象。可將對象想象成一種新型變量;它保存着數據,但可要求它對自身進行操作。理論
上講,可從要解決的問題身上提出所有概念性的組件,然後在程序中將其表達爲一個對象。
(2) 程序是一大堆對象的組合;通過消息傳遞,各對象知道自己該做些什麼。爲了向對象發出請求,需向那
個對象“發送一條消息”。更具體地講,可將消息想象爲一個調用請求,它調用的是從屬於目標對象的一個
子例程或函數。
(3) 每個對象都有自己的存儲空間,可容納其他對象。或者說,通過封裝現有對象,可製作出新型對象。所
以,儘管對象的概念非常簡單,但在程序中卻可達到任意高的複雜程度。
(4) 每個對象都有一種類型。根據語法,每個對象都是某個“類”的一個“實例”。其中,“類”( Class)
是“類型”( Type)的同義詞。一個類最重要的特徵就是“能將什麼消息發給它?”。
(5) 同一類所有對象都能接收相同的消息。這實際是別有含義的一種說法,大家不久便能理解。由於類型爲
“圓”( Circle)的一個對象也屬於類型爲“形狀”( Shape)的一個對象,所以一個圓完全能接收形狀消
息。這意味着可讓程序代碼統一指揮“形狀”,令其自動控制所有符合“形狀”描述的對象,其中自然包括
“圓”。這一特性稱爲對象的“可替換性”,是OOP 最重要的概念之一。

“類創建者”(創建新數據類型的人)以及“客戶程序員”(在自己的應用程序中採用現成
數據類型的人;註釋④)。 對客戶程序員來講,最主要的目標就是收集一個充斥着各種類的編程“工具
箱”,以便快速開發符合自己要求的應用。而對類創建者來說,他們的目標則是從頭構建一個類,只向客戶
程序員開放有必要開放的東西(接口),其他所有細節都隱藏起來。

“接口”( Interface)規定了可對一個特定的對象發出哪些請求。
private 在您與客戶程序員之間豎起了一堵牆。
“ protected”(受保護的)與“ private”相似,只是一個繼承的類可訪問受保護的成員,但不能訪問私有成員。

extent 儘管使用的函數接口未變,但它的新版本具有不同的表現

將一條消息發給對象時,如果並不知道對方的具體類型是什麼,但採取的行動同樣是正確的,這種情況就叫
作“多形性”( Polymorphism)。對面向對象的程序設計語言來說,它們用以實現多形性的方法叫作“動態
綁定”
抽象的基礎類和接口
我們不想其他任何人實際創建基礎類的一個對象,只對上溯造型成它,以便使用它們的接口

。這裏的“違例”
( Exception)屬於一個特殊的對象,它會從產生錯誤的地方“扔”或“擲”出來。隨後,這個違例會被設計
用於控制特定類型錯誤的“違例控制器”捕獲。

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