“為什麼面向對象的編程會在軟件開發領域造成如此震憾的影響?”
面向對象編程(OOP)具有多方面的吸引力。對管理人員,它實現了更快和更廉價的開發與維護過程。對分析與設計人員,建模處理變得更加簡單,能生成清晰、易於維護的設計方案。對程序員,對象模型顯得如此高雅和淺顯。此外,面向對象工具以及庫的巨大威力使編程成為一項更使人愉悅的任務。每個人都可從中獲益,至少表面如此。
如果說它有缺點,那就是掌握它需付出的代價。思考對象的時候,需要采用形象思維,而不是程序化的思維。與程序化設計相比,對象的設計過程更具挑戰性——特別是在嘗試創建可重復使用(可再生)的對象時。過去,那些初涉面向對象編程領域的人都必須進行一項令人痛苦的選擇:
(1) 選擇一種諸如Smalltalk的語言,“出師”前必須掌握一個巨型的庫。
(2) 選擇幾乎根本沒有庫的C++(注釋①),然後深入學習這種語言,直至能自行編寫對象庫。
①:幸運的是,這一情況已有明顯改觀。現在有第三方庫以及標准的C++庫供選用。
事實上,很難很好地設計出對象——從而很難設計好任何東西。因此,只有數量相當少的“專家”能設計出最好的對象,然後讓其他人享用。對於成功的OOP語言,它們不僅集成了這種語言的語法以及一個編譯程序(編譯器),而且還有一個成功的開發環境,其中包含設計優良、易於使用的庫。所以,大多數程序員的首要任務就是用現有的對象解決自己的應用問題。本章的目標就是向大家揭示出面向對象編程的概念,並證明它有多麼簡單。
本章將向大家解釋Java的多項設計思想,並從概念上解釋面向對象的程序設計。但要注意在閱讀完本章後,並不能立即編寫出全功能的Java程序。所有詳細的說明和示例會在本書的其他章節慢慢道來。