8.1 面向?qū)ο蠓椒?/h1>
時間:2023-04-21 06:18:01 | 來源:網(wǎng)站運營
時間:2023-04-21 06:18:01 來源:網(wǎng)站運營
8.1 面向?qū)ο蠓椒ǎ? 面向?qū)ο蟮姆治龇椒ㄊ抢?b>面向?qū)ο蟮乃枷?/b>進行
建模,如實體、關(guān)系、屬性等,同時運用
封裝、繼承、多態(tài)等機制來構(gòu)造
模擬現(xiàn)實系統(tǒng)的方法。
什么是面向?qū)ο蠓椒ǎ?/h2> 盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程。
- object -> model
- 現(xiàn)實世界的物 -> 計算機處理的模型
對象:具有相同狀態(tài)的一組操作的集合
對象與傳統(tǒng)的數(shù)據(jù)有本質(zhì)區(qū)別:
對象是進行處理的主體。必須通過發(fā)送消息,使對象主動執(zhí)行操作,處理它的私有數(shù)據(jù),而不能從外界直接操作其私有數(shù)據(jù)。
面向?qū)ο蠓椒?要點
(1)面向?qū)ο蟮能浖到y(tǒng)中,任何元素都是對象(Everything is Object),復(fù)雜的軟件對象由比較簡單的對象組合而成。
(2)把所有對象都劃分成各種對象類(簡稱:類,class),每個對象類都定義了一組數(shù)據(jù)(變量)和一組方法(函數(shù))。
(3)按照子類(派生類)與父類(基類)的關(guān)系,把若干個對象類組成一個層次結(jié)構(gòu)的系統(tǒng)。
(4)對象彼此之間僅能通過傳遞消息(方法調(diào)用)互相聯(lián)系。
Object Oriented=Objects+Classes+Inheritance+Communication with messages
什么是消息?
消息(massage):要求某個對象執(zhí)行某個操作的規(guī)格說明。
通俗地說就是方法調(diào)用,如:myDog.show(1);
接收消息的對象——myDog
消息名——show
參數(shù)——1
優(yōu)點
大多數(shù)觀察者相信,通過面向?qū)ο缶幊蹋_發(fā)效率至少提高了5倍,可靠性、理解程度,也大為提高。
1.與人類習(xí)慣的思維方法一致
面向?qū)ο蠓椒▽W(xué)的基本原則是按照人類習(xí)慣的思維方法建立問題域的模型,開發(fā)出盡可能直觀、自然地表現(xiàn)求解方法的軟件系統(tǒng)。
傳統(tǒng)的程序設(shè)計技術(shù),忽略了數(shù)據(jù)和操作之間的內(nèi)在聯(lián)系
2.穩(wěn)定性好,易修改
現(xiàn)實世界中的實體是相對穩(wěn)定的,因此,以對象為中心構(gòu)造的軟件系統(tǒng)也比較穩(wěn)定。
當需求變化時,并不會引起軟件結(jié)構(gòu)的整體變化,往往僅需要作一些局部性的修改。
3.可重用性好
對象固有的封裝性和信息隱藏機制,使得對象的內(nèi)部實現(xiàn)與外界隔離,具有較強的獨立性。
有兩種方法可以重復(fù)使用一個對象類:
- 創(chuàng)建該類的實例,直接使用(new);
- 派生出一個滿足當前需要的新類(繼承)。
3.較易開發(fā)大型軟件產(chǎn)品
可以把一個大型軟件分解成一系列本質(zhì)上相互獨立的對象來處理,每個對象有自己的用途,從而降低開發(fā)的技術(shù)難度,開發(fā)管理也比較容易。
4.可維護性好
類的測試通常比較容易實現(xiàn),如果發(fā)現(xiàn)錯誤也往往集中在類的內(nèi)部,易調(diào)試。
對象的特點:
(1) 以數(shù)據(jù)為中心。操作圍繞對其數(shù)據(jù)所需要做的處理來設(shè)置,不設(shè)置與這些數(shù)據(jù)無關(guān)的操作。
(2) 對象是進行處理的主體。不能從外部直接加工它的私有數(shù)據(jù)(private),必須通過它的公有接口(public)向?qū)ο蟀l(fā)消息,請求它執(zhí)行它的某個操作,處理它的私有數(shù)據(jù)。
(3) 數(shù)據(jù)封裝。對象好像是一只黑盒子,它的私有數(shù)據(jù)完全被封裝在盒子內(nèi)部,對外是隱藏的、不可見的,對私有數(shù)據(jù)的訪問或處理只能通過公有的操作進行。
(4) 模塊獨立性好。
高內(nèi)聚:對象內(nèi)部各種元素彼此結(jié)合得很緊密
低耦合:由于元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,與外界的聯(lián)系自然就比較少。
使用對象時只需知道它向外界提供的接口形式,而無須知道它的內(nèi)部實現(xiàn)算法。這使得對象的使用變得非常簡單、方便,而且具有很高的安全性和可靠性。