• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            tbwshc

            tbw

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(4)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            (轉載)C++教程網(wǎng)www.cppcourse.com

            面向對象的程序設計方法要求語言必須具備抽象、封裝、繼承和多態(tài)性這幾個關鍵要素。

            面向對象程序設計,是通過為數(shù)據(jù)和代碼建立分塊的內存區(qū)域,以便提供對程序進行模塊化的一種程序設計方法。對象是計算機內存中的一塊區(qū)域,通過將內存分塊,每個模塊(即對象)在功能上相互之間保持相對獨立。

            這些內存模塊中不但存儲數(shù)據(jù),而且也存儲代碼,這對保證對象是受保護的這一點很重要,只有對象中的代碼才可以訪問存儲于這個對象中的數(shù)據(jù),這清楚地限定了對象所具有的功能(即一個對象在一個軟件中所能起到的作用),并使對象保護它自己不受未知的外部其它的事件的影響,從而使自己的數(shù)據(jù)和功能不會因此遭到破壞。

            在面向對象的程序中,對象之間可以通過函數(shù)調用實現(xiàn)相互通信。一個對象可以調用另一個對象的函數(shù),處于對象外部的代碼就沒有機會通過直接修改對象的內存區(qū)域。當對象的一個函數(shù)被調用時,對象執(zhí)行其內部代碼來響應這個調用,這使tb對象呈現(xiàn)出一定的行為。行為及其結果就是該對象的功能。對象被視為能做出動作的實體,動作在對象相互作用時被激發(fā),換句話說,對象就像在宿主計算機上擁有數(shù)據(jù)和代碼,并能相互通信的具有特定功能的一臺較小的計算機。

            抽象

            面向對象鼓勵程序員以抽象的觀點看待程序,即程序是由一組抽象的對象組成的。另一方面,我們又可以將一組對象的共同特征進一步抽象出來,從面形成“類”的概念。

            抽象是一種從一般的觀點看待事物的方法,它要求程序員集中于事物的本質特征,而不是具體細節(jié)或具體實現(xiàn)。面向對象鼓勵程序員以抽象的觀點看待程序,也就是說程序是一組抽象的對象-類組成的(嚴格講,C++程序不是純面向對象的,因為程序中還有像main這樣的全局函數(shù))。程序從一組對象為起來,抽取公共的行為放入到一個類中,這是抽象分類的觀點,不同類的對象具有不同的行為。

            類的概念來源于人們認識自然、認識社會的過程。在這一過程中,人們主要使用兩種方法:由特殊到一般的歸納法和由一般到特殊的演繹法。在歸納的過程中,我們從一個個具體的事物中把共同的特征抽取出來,形成一個一般的概念,這就是“歸類”;在演繹的過程中,我們又把同類的事物,根據(jù)不同的特征分成不同的小類,這又是“分類”。對于一個具體的類,它有許多具體的個體,我們就管這些個體叫做“對象”。

            舉個例子,“人”是一個類,具有“直立行走、會使用工具”等一些區(qū)別于其它事物的共同特征;而張三、李四、王五等一個個具體的人,就是“人”這個類的一個個“對象”。

            封裝

            所謂數(shù)據(jù)封裝,就是將一組數(shù)據(jù)和與這組數(shù)據(jù)相關的操作集合組裝在一起,形成一個能動的實體,也就是對象。在這種情況下,用戶是不可以直接操作數(shù)據(jù)的,他必須通過和數(shù)據(jù)相關的操作來訪問數(shù)據(jù)。換句話說,數(shù)據(jù)封裝就是給數(shù)據(jù)提供了與外界聯(lián)系的標準接口,無論是誰,只有通過這些接口,使用規(guī)范的方式,才能訪問這些數(shù)據(jù)。同時,由于客戶端總是和接口打交道,他也就不必要了解數(shù)據(jù)的具體細節(jié)。

            由此可見,封裝要求一個對象應具備明確的功能,并具有接口以便和其它對象相互作用。同時,對象的內部實現(xiàn)(代碼和數(shù)據(jù))是受保護的,外界不能訪問它們,只有局部于對象的代碼才可以訪問對象的內部數(shù)據(jù)。對象的內部數(shù)據(jù)結構的不可訪問性稱為數(shù)據(jù)隱藏。封裝使得一個對象可以像一個部件一樣用在各種程序中,而不用擔心對象的功能受到影響。

            早期的軟件設計方法,把數(shù)據(jù)和程序混在一起,結構化很差,被細稱為“一碗面條”的編程方法。在這一階段程序的可讀性與可維護性都很差,于是產(chǎn)生了“軟件危機”,為了解除這種危機便提出了結構化程序設計。在結構化程序設計里,雖然程序被分為不同的模塊,以便大大減少不同模塊之間的相互作用,但數(shù)據(jù)仍然屬于整個程序的。這就又存在著這樣一個問題:一方面,程序員在設計每一個模塊的時候,都要或多或少地作全局考慮,模塊與模塊之間的耦合度相對太高了,勢必增加不同模塊的程序員之間溝通所帶來的工作量;另一方面,在某地方對數(shù)據(jù)的改動,有可能又對整個程序產(chǎn)生難以預料的影響。隨著軟件工程的進一步發(fā)展,軟件越來越大,數(shù)據(jù)越來越多,這個問題也越來越突出。

            數(shù)據(jù)封裝的提出,就是為了解決這一問題。它一方面使得程序員在設計程序時可以專注于自己的對象,“各人自掃門前雪,莫管他人瓦上霜”,同時也切斷了不同模塊之間數(shù)據(jù)的非法使用,減少了出錯的可能性。

            繼承

            所謂繼承是指一個對象可以獲得另一個對象的特性的機制,它支持層次類這一概念。例如:紅蘋果屬于蘋果類,而蘋果類又屬于水果類。通過繼承,低層的類只需定義特定于它的特征,而共享高層類中的特征。

            多態(tài)

            不同的對象可以調用相同名稱的函數(shù),并可導致完全不同的行為的現(xiàn)象稱為多態(tài)性。利用多態(tài)性,程序中只需進行一般形式的函數(shù)調用,函數(shù)的實現(xiàn)細節(jié)留給接受函數(shù)調用的對象。這大大提高了我們解決復雜問題的能力。例如繪制三角形與繪制正方形所調用的繪制函數(shù)其效果肯定是不同的,但我們可以設計一個公共的Draw()函數(shù)代表繪制,而不同對象的繪制圖形的具體細節(jié)則分別由具體對象負責實現(xiàn)。

            posted on 2012-08-12 12:47 tbwshc 閱讀(3081) 評論(0)  編輯 收藏 引用
            国内精品久久久久久野外| 狠狠色丁香久久婷婷综合五月| 久久久久久极精品久久久| 久久无码一区二区三区少妇| 伊人精品久久久久7777| 人妻无码中文久久久久专区| 777米奇久久最新地址| 香蕉久久久久久狠狠色| 香蕉久久夜色精品国产尤物| 国产精品美女久久久久网| 青青草国产97免久久费观看| 久久久国产精品亚洲一区| 久久久精品人妻无码专区不卡| 日韩人妻无码精品久久免费一| 久久影院久久香蕉国产线看观看| 日韩av无码久久精品免费| 久久成人精品| 久久免费高清视频| 久久人与动人物a级毛片| 久久国产视频网| 欧美777精品久久久久网| 新狼窝色AV性久久久久久| 久久亚洲精品国产亚洲老地址| 青青青青久久精品国产h| 亚洲va中文字幕无码久久不卡| 伊人久久大香线蕉综合热线| 性做久久久久久久久老女人| 久久无码国产| 久久夜色精品国产| 久久久久这里只有精品| 理论片午午伦夜理片久久 | 老男人久久青草av高清| 久久久久18| 久久影院午夜理论片无码| 久久久久婷婷| 日本加勒比久久精品| 蜜桃麻豆www久久国产精品| 久久黄视频| 欧美久久综合九色综合| 性欧美大战久久久久久久| 精品综合久久久久久98|