天天看點

java語言學習002_面向對象程式設計思想

      人類在認識世界時,為了友善自己和智慧提升,很自然的對事物進行了分類。對世界進行了抽象,若把所有各個事物看做對象,縱觀所有對象,這些對象具有各自的或共有的特征,并且又有共有的或各自的的能力,這樣就可以對具有相同一些特征和一些能力的事物進行了歸類。

      比如,車,有汽車,火車他們都有哪些屬性?

                 汽車,特征:長度,顔色,速度,輪胎,載重,平面行走……能力:移動,載東西,……

                 火車,特征:長度,顔色,速度,輪胎,載重,軌道行走……能力:移動,載東西,……

      是以看出,車這個類型,就特征:長度,顔色,速度,輪胎,載重等,能力:移動,載東西等。是以就産生了,車,這個類,并有汽車,火車等類的對象(其他的就不詳細列出)。

      “類”就是事物的種類、類型,是對某些具有相似特征的事物的總稱,而“對象”是“類”的“執行個體”。“類”是抽象概念上的定義,而“對象”是實際存在的具體的一個實體。

      根據這個思想,就産生了,面向對象的計算機程式設計,面向對象程式設計思想是相對于c語言中的面向過程程式設計思想。

     面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實作,使用的時候一個一個依次調用就可以了。

     面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描叙某個事物在整個解決問題的步驟中的行為。

      在面向對象的程式設計中(java),想完成一件事,隻要去産生一個能完成此件事的類的對象(new object),并且讓這個對象幹這件事情的能力發揮(調用對象完成此事的方法method),就能完成我們想要的事情(業務),而這個類的對象的能力(方法method)做了什麼,或者做這件事詳細的過程,就不用太多的關注。這就是面向對象程式設計思想了。

      面向對象程式設計思想有三大特征:封裝,(抽象),繼承,多态性。

      抽象就是忽略一個主題中與目前目标無關的那些方面,以便更充分地注意與目前目标有關的方面。抽象并不打算了解全部問題,而隻是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。

      如:找工作,公司需要編寫java代碼的人,就隻關心:java,專業,工作經驗等,而不去關心性别,身高,會不會跳舞之類的了。

      封裝:封裝是把過程和資料包圍起來,對資料的通路隻能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口通路其他對象。

     繼承:繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明确表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和執行個體變量,并且類可以修改或增加新的方法使之更适合特殊的需要。

    多态性:多态性是指允許不同類的對象對同一消息作出響應。多态性包括參數化多态性和包含多态性。多态性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程式函數同名問題。