国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

理解Java面向對象的程序設計思想

2019-11-18 15:38:29
字體:
來源:轉載
供稿:網友

  編程模型

  所有計算機均由兩種元素組成:代碼和數據.精確的說,有些程序是圍繞著"什么正在發生"而編寫,有些則是圍繞"誰正在受影響"而編寫的。

  第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特征,可被理解為作用于數據的代碼.如 C 等過程化語言。

  第二種編程方式叫做"面向對象的模型",按這種模型編寫的程序圍繞著程序的數據(對象)和針對該對象而嚴格定義的接口來組織程序,它的特點是數據控制代碼的訪問.通過把控制權轉移到數據上,面向對象的模型在組織方式上有:抽象,封裝,繼續和多態的好處.

  抽象

  面向對象程序設計的基本要素是抽象,程序員通過抽象來治理復雜性。

  治理抽象的有效方法是使用層次式的分類特性,這種方法答應用戶根據物理含義分解一個復雜的系統,把它劃分成更輕易治理的塊.例如,一個計算機系統是一個獨立的對象.而在計算機系統內部由幾個子系統組成:顯示器,鍵盤,硬盤驅動器,DVD-ROM,軟盤,音響等,這些子系統每個又由專門的部件組成.要害是需要使用層次抽象來治理計算機系統(或其他任何復雜系統)的復雜性。

  面向對象程序設計的本質:這些抽象的對象可以被看作具體的實體,這些實體對用來告訴我們作什么的消息進行響應。

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

  計算機對象包含了它所有的屬性,以及操作,這就是面向對象程序設計的三大原則之一:封裝.

  封裝

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

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

  在定義一個類時,需要指定構成該類的代碼與數據.非凡是,類所定義的對象叫做成員變量或實例變量.操作數據的代碼叫做成員方法.方法定義怎樣使用成員變量,這意味著類的行為和接口要由操作實例數據的方法來定義。

  由于類的用途是封裝復雜性,所以類的內部有隱藏實現復雜性的機制.所以JAVA中提供了私有和公有的訪問模式,類的公有接口代表外部的用戶應該知道或可以知道的每件東西.私有的方法數據只能通過該類的成員代碼來訪問.這就可以確保不會發生不希望的事情。

  繼續

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

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

  多態

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

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

  在由封裝,繼續,多態所組成的環境中,程序員可以編寫出比面向過程模型更健壯,更具擴展性的程序.經過仔細設計的類層次結構是重用代碼的基礎.封裝能讓程序員不必修改公有接口的代碼即可實現程序的移植.多態能使程序員開發出簡潔,易懂,易修改的代碼.例如:汽車
從繼續的角度看,駕駛員都依靠繼續性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是奔馳牌還是菲亞特牌,駕駛員都能找到方向盤,手剎,換檔器.經過一段時間駕駛后,都能知道手動檔與自動檔之間的差別,因為他們實際上都知道這兩者的共同超類:傳動裝置.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠来县| 上栗县| 轮台县| 安顺市| 辰溪县| 依安县| 临沭县| 台东县| 宝应县| 湖口县| 合肥市| 长春市| 襄樊市| 西乌珠穆沁旗| 饶阳县| 新竹市| 沙洋县| 邯郸县| 澄迈县| 女性| 玉山县| 普兰县| 七台河市| SHOW| 长沙县| 色达县| 毕节市| 娄底市| 五大连池市| 车险| 广东省| 新泰市| 改则县| 沙河市| 长宁区| 邹城市| 桐梓县| 康乐县| 通化县| 保德县| 通化县|