java 物件導向編程之我見解

來源:互聯網
上載者:User

1、關聯、聚集、依賴之間的關係

關聯是說明兩個對象之間有關係,這種關係可以是一對一、一對多、多對一、多對多等;

聚集是一個整體由一部分組件組成的,比如汽車,由發動機、輪子、方向盤、車座等組件組成;

依賴呢,是兩個對象之間存在依存的關係,比如單車和打氣筒之間的關係,是依存關係。

2、什麼樣的軟體才是好的軟體?

對已有需求實現了完全的功能,同時對新增的需求實現了完全的開放。

怎麼實現?

高度抽象,設定檔,類反射

3、uml圖

(1)使用案例圖

(2)類框圖

(3)時序圖

(4)共同作業圖表

(5)狀態轉換圖

(6)元件圖表

(7)部署圖

4、物件導向開發中的核心思想和概念

(1)問題領域、對象、屬性、狀態、行為、方法、實現

(2)訊息、服務

(3)介面

(4)類

(5)封裝、透明

(6)抽象

(7)繼承、擴充、覆蓋

(8)組合

(9)多態、動態綁定

物件導向程式設計的基本要素是抽象,程式員通過抽象來管理複雜性。

  管理抽象的有效方法是使用層次式的分類特性,這種方法允許使用者根據物理含義分解一個複雜的系統,把它劃分成更容易管理的塊.例如,一個電腦系統是一個獨立的對象.而在電腦系統內部由幾個子系統組成:顯示器,鍵盤,硬碟,dvd-rom,磁碟片,音響等,這些子系統每個又由專門的組件組成.關鍵是需要使用層次抽象來管理電腦系統(或其他任何複雜系統)的複雜性。

  物件導向程式設計的本質:這些抽象的對象可以被看作具體的實體,這些實體對用來告訴我們作什麼的訊息進行響應。

/* (我的理解)
*電腦是一個實體,我要輸入字元,顯示器顯示出來,那麼
*電腦(對象).輸入(鍵盤屬性).顯示(顯示方法)
*使用分層來引用,操作.而不用管電腦內部如何處理.
*只要有電腦對象,它就能響應我的操作,而我敲鍵盤,
*電腦對象就把這個訊息傳給螢幕,螢幕顯示.
*/

  電腦對象包含了它所有的屬性,以及操作,這就是物件導向程式設計的三大原則之一:封裝.

  封裝

  封裝是一種把代碼和代碼所操作的資料捆綁在一起,使這兩者不受外界幹擾和誤用的機制.封裝可被理解為一種用做保護的封裝器,以防止代碼和資料被封裝器外部所定義的其他代碼任意訪問.對封裝器內部代碼與資料的訪問通過一個明確定義的介面來控制.封裝代碼的好處是每個人都知道怎樣存取碼,進而無需考慮實現細節就能直接使用它,同時不用擔心不可預料的副作用。

  在java中,最基本的封裝單元是類,一個類定義著將由一組對象所共用的行為(資料和代碼).一個類的每個對象均包含它所定義的結構與行為,這些對象就好象是一個模子鑄造出來的.所以對象也叫做類的執行個體。

  在定義一個類時,需要指定構成該類的代碼與資料.特別是,類所定義的對象叫做成員變數或執行個體變數.操作資料的代碼叫做成員方法.方法定義怎樣使用成員變數,這意味著類的行為和介面要由操作執行個體資料的方法來定義。

  由於類的用途是封裝複雜性,所以類的內部有隱藏實現複雜性的機制.所以java中提供了私人和公有的訪問模式,類的公有介面代表外部的使用者應該知道或可以知道的每件東西.私人的方法資料只能通過該類的成員代碼來訪問.這就可以確保不會發生不希望的事情。

  繼承

  繼承是指一個對象從另一個對象中獲得屬性的過程.是物件導向程式設計的三大原則之二,它支援按層次分類的概念.例如,波斯貓是貓的一種,貓又是哺乳動物的一種,哺乳動物又是動物的一種.如果不使用層次的概念,每個對象需要明確定義各自的全部特徵.通過層次分類方式,一個對象只需要在它的類中定義是它成為唯一的 各個屬性,然後從父類中繼承它的通用屬性.因此,正是由於繼承機制,才使得一個對象可以成為一個通用類的一個特定執行個體.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性。

  繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是物件導向程式在複雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統中的其他代碼不會產生無法預料的互動作用。

  多態

  多態是指一個方法只能有一個名稱,但可以有許多形態,也就是程式中可以定義多個同名的方法,用"一個介面,多個方法"來描述.可以通過方法的參數和類型引用。

  封裝,繼承,多態的組合使用

  在由封裝,繼承,多態所組成的環境中,程式員可以編寫出比面向過程模型更健壯,更具擴充性的程式.經過仔細設計的類階層是重用代碼的基礎.封裝能讓程式員不必修改公有介面的代碼即可實現程式的移植.多態能使程式員開發出簡潔,易懂,易修改的代碼.例如:汽車
從繼承的角度看,駕駛員都依靠繼承性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是平治牌還是菲亞特牌,駕駛員都能找到方向盤,手刹,換檔器.經過一段時間駕駛後,都能知道手動檔與自動檔之間的差別,因為他們實際上都知道這兩者的共同超類:傳動裝置.
從封裝的角度看,駕駛員總是看到封裝好的特性.刹車隱藏了許多複雜性,其外觀如此簡單,用腳就能操作它.發動機,手刹,輪胎大小的實現對與刹車類的定義沒有影響

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.