Java編程那些事兒57—物件導向基礎
鄭州遊戲學院 陳躍峰
出自:http://blog.csdn.net/mailbomb
第八章 物件導向
在程式中,最核心的是資料結構和演算法,不同的程式需要根據需要設計不同的資料結構,然後依賴程式的功能以及資料結構設計對應的演算法,這種設計方式是程式的底層設計,也就是解決具體的功能。
當程式項目複雜到一定程度時,就不僅要專註於底層的設計,更要對程式的結構進行設計,物件導向(Object-Oriented,簡稱OO)就是一種常見的程式結構設計方法。
物件導向思想的基礎是將相關的資料和方法放在一起,組合成一種新的複合資料型別,然後使用新建立的複合資料型別作為項目的基礎。
8.1 物件導向簡介
前面介紹的有關Java語言的基礎知識,只是程式的基礎知識,而本章介紹的物件導向的相關知識,則是和設計有關的知識。
物件導向的設計方式採用的是從外到內的設計方式,先設計整個項目的結構,然後再根據關聯關注內部的每個細節。再分解整個項目時,也是按照模組化進行分解的。就像要製造一輛汽車,物件導向的設計思路是這樣的:首先汽車要生產發動機、變速箱等模組,然後再去考慮每個模組的具體實現。使用這種設計思路,把每個部分都模組化,便於將功能進行分解,可以開發更複雜的項目。
再將模組劃分出來以後,然後就來設計每個具體的模組,再設計模組時,如果模組還很複雜,則可以繼續進行分解。如果模組已經劃分的足夠細緻了,那麼就可以進行具體的設計了。
設計具體模組的方式是確定模組需要的核心資料的結構,以及該模組需要具備的功能,也就是本章一開始提到的資料結構和演算法,使每個模組都成為一個獨立的完整結構,可以向其它的模組提供對應的服務(功能)。
整個系統(項目)則通過模組之間的互相關聯運轉起來,而每個模組只需要開放一個介面給其它的模組即可。
上面提到的就是物件導向的設計方式,總結起來是兩大部分:
l 模組劃分
l 模組實現
在具體的物件導向編程(Object-Oriented Programm,簡稱OOP)中,劃分出來的每個模組一般稱為類(class),而模組內部的資料稱為field,一般稱為屬性,模組內部的功能一般稱為方法(method)。
按照物件導向的設計方式,在實際的項目開發過程中,物件導向技術一般分為3個部分:
l 物件導向分析(Object-Oriented Analysis,簡稱OOA)
該步驟按照物件導向的思考方式提取項目的需求資訊,一般由系統分析員負責,本部分形成文檔為《項目需求分析說明書》。
l 物件導向設計(Object-Oriented Design,簡稱OOD)
該步驟按照《項目需求分析說明書》進行模組劃分,以及進行模組的概要設計,一般由進階程式員負責,本部分形成文檔為《項目概要設計說明書》。
l 物件導向編程(Object-Oriented Programm,簡稱OOP)
該步驟按照《項目概要設計說明書》細化每個模組的結構,一般由程式員負責,本部分形成文檔為《項目詳細設計說明書》。
最後由編碼員(Coder)按照《項目詳細設計說明書》進行具體的編碼。這個就是物件導向開發的標準流程的簡單描述。
而實際的程式開發過程中,則更關注於OOP部分,也就是實際實現時的具體設計以及編碼的問題。
物件導向技術除了這些設計方式以外,還有很多的概念和文法知識需要在編程時進行學習,下面以Java語言的文法為基礎來介紹物件導向編程的內容。