java面向對象詳細分解

面向對象分析(OOA)

是在一個系統的開發過程中進行了系統業務調查以後,按照面向對象的思想來分析問題。OOA 與結構化分析有較大的區別。OOA 所強調的是在系統調查資料的基礎上,針對 OO 方法所需要的素材進行的歸類分析和整理,而不是對管理業務現狀和方法的分析。

面向對象設計(OOD)

面向對象設計(Object-Oriented Design,OOD)方法是 OO 方法中一箇中間過渡環節。其主要作用是對 OOA分析的結果作進一步的規範化整理,以便能夠被 OOP 直接接受。面向對象設計(OOD)是一種軟件設計方法,是一種工程化規範。這是毫無疑問的。按照 Bjarne Stroustrup的說法,面向對象的編程範式(paradigm)是[Stroustrup, 97]:

  1. 決定你要的類;
  2. 給每個類提供完整的一組操作;
  3. 明確地使用繼承來表現共同點。

由這個定義,我們可以看出:OOD 就是“根據需求決定所需的類、類的操作以及類之間關聯的過程”。
OOD 的目標是管理程序內部各部分的相互依賴。爲了達到這個目標,OOD 要求將程序分成塊,每個塊的規模應該小到可以管理的程度,然後分別將各個塊隱藏在接口(interface)的後面,讓它們只通過接口相互交流。比如說,如果用 OOD 的方法來設計一個服務器-客戶端(client-server)應用,那麼服務器和客戶端之間不應該有直接的依賴,而是應該讓服務器的接口和客戶端的接口相互依賴。
這種依賴關係的轉換使得系統的各部分具有了可複用性。還是拿上面那個例子來說,客戶端就不必依
賴於特定的服務器,所以就可以複用到其他的環境下。如果要複用某一個程序塊,只要實現必須的接口就行了。
OOD 是一種解決軟件問題的設計範式(paradigm),一種抽象的範式。使用 OOD 這種設計範式,我們可以用對象(object)來表現問題領域(problem domain)的實體,每個對象都有相應的狀態和行爲。我們剛纔說到:OOD 是一種抽象的範式。抽象可以分成很多層次,從非常概括的到非常特殊的都有,而對象可能處於任何一個抽象層次上。另外,彼此不同但又互有關聯的對象可以共同構成抽象:只要這些對象之間有相似性,就可以把它們當成同一類的對象來處理。

面向對象編程(OOP)

面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。

OOP 達到了軟件工程的三個主要目標:重用性、靈活性和擴展性。

爲了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。

面向對象編程有很多重要的特性,比如:封裝,繼承,多態和抽象。下面的章節我們會逐個 分析這些特性。

封裝

封裝給對象提供了隱藏內部特性和行爲的能力。對象提供一些能被其他對象訪問的方法來改變它內部的數據。在 Java 當中,有 4 種訪問權限 對應着三個修飾符:public,private ,protected。每一種修飾符
給其他的位於同一個包或者不同包下面對象賦予了不同的訪問權限。
下面列出了使用封裝的一些好處:
通過隱藏對象的屬性來保護對象內部的狀態。 提高了代碼的可用性和可維護性,因爲對象的行爲可以被單獨的改變或者是擴展。 禁止對象之間的不良交互提高模塊化。

多態

多態是編程語言給不同的底層數據類型做相同的接口展示的一種能力。一個多態類型上的操作可以應用到其他類型的值上面。

繼承

繼承給對象提供了從基類獲取字段和方法的能力。繼承提供了代碼的重用行,也可以在不修 改類的情況下給現存的類添加新特性。

抽象

抽象是把想法從具體的實例中分離出來的步驟,因此,要根據他們的功能而不是實現細節來創建類。Java 支持創建只暴漏接口而不包含方法實現的抽象的類。這種抽象技術的主要目的 是把類的行爲和實現細節分離開。

抽象和封裝的不同點

抽象和封裝是互補的概念。一方面,抽象關注對象的行爲。另一方面,封裝關注對象行爲的 細節。一般是通過隱藏對象內部狀態信息做到封裝,因此,封裝可以看成是用來提供抽象的 一種策略。

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