|
幾乎所有3D軟件的二次開發(fā),基本上都是基于面向?qū)ο缶幊�,,而搞清楚幾個基本概念對理解程序是非常重要的:
1 Y, c; }" A* |; T& k& a# x! [. Z3 f, S& N" N( {
面向?qū)ο蟮幕靖拍?br />
2 y w* x$ S* ?2 G/ Z" C對象:對象是要研究的任何事物,。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐5 R8 g3 s- n/ x6 l$ F/ c# ?
大的數(shù)據(jù)庫,、極其復(fù)雜的自動化工廠,、航天飛機都可看作對象,它不僅能表示有形的實體,,也能表示無形的(抽象的)規(guī)則,、計劃或事件。對象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)構(gòu)成一獨立整體,。從程序設(shè)計者來看,,對象是一個程序模塊,從用戶來看,,對象為他們提供所希望的行為,。在對內(nèi)的操作通常稱為方法。
& h5 X. x& U4 u# Z. w5 j對象的狀態(tài)用數(shù)據(jù)來表示稱為屬性; c& o- s( e1 |1 Q
對象的行為用代碼來實現(xiàn)稱為方法; n' L# b9 |/ d! V0 L
類:類是對象的模板,。即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,,一個類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象之上的抽象,,對象則是類的具體化,,是類的實例。類可有其子類,,也可有其它類,,形成類層次結(jié)構(gòu)。6 L" }& m0 g" K2 R7 A
類與對象的關(guān)系:例如設(shè)計圖紙就是類,,依據(jù)圖紙制造的零件就是對象
1 G7 F! }% {& q' |/ b# W
- O2 x# M% N, l$ G. E面向?qū)ο缶幊逃腥筇匦�,,封裝、繼承和多態(tài),。
2 o: G, u3 g. H' F1. 封裝封裝是把客觀事物封裝成抽象的類,,并隱藏實現(xiàn)細節(jié),使得代碼模塊化,。比如,,我們可以把“汽車”這個客觀事物封裝成一個類,這個類有顏色,、型號等屬性,,有啟動、加速,、剎車等方法,,而這些屬性和方法的具體實現(xiàn)則被隱藏起來,,使用者只需要知道這個類有哪些屬性和方法,不需要知道這些方法是如何實現(xiàn)的,。+ {" |1 ~9 }% z2 f0 `4 c
2. 繼承繼承是面向?qū)ο缶幊痰牧硪粋重要特性,,它提供了一種無需重新編寫,使用現(xiàn)有類的所有功能并進行擴展的能力,。比如,,我們可以定義一個“電動車”類,它繼承了“汽車”類,,就自動擁有了“汽車”類的所有屬性和方法,比如顏色,、型號等屬性,,啟動、加速,、剎車等方法,,然后我們還可以在“電動車”類上增加一些新的屬性和方法,比如電池容量,、充電方法等,。: M1 t* J9 R' R6 x% T
3. 多態(tài)多態(tài)是指同一操作作用于不同的對象,可以有不同的解釋,,產(chǎn)生不同的執(zhí)行結(jié)果,。比如,我們定義了一個“汽車”類,,它有一個“啟動”方法,,然后我們又定義了一個“電動車”類,它繼承了“汽車”類,,也有一個“啟動”方法,,但是“電動車”類的“啟動”方法的實現(xiàn)可能與“汽車”類的不同,這就是多態(tài),。
7 I5 N: `6 t. r' e0 {: P. h
) e' M; F/ Y* U! {3 O4 O. S/ P# r! t+ Z
面向?qū)ο缶幊痰睦砟?/strong>面向?qū)ο缶幊逃袃蓚主要的理念,,基于接口編程和組合優(yōu)于繼承。
$ u6 h: F. K6 k& C. d1. 基于接口編程基于接口編程的理念是,,使用者不需要知道數(shù)據(jù)類型,、結(jié)構(gòu)和算法的細節(jié),只需要知道調(diào)用接口能夠?qū)崿F(xiàn)功能,。這就像我們使用電視遙控器一樣,,我們不需要知道遙控器內(nèi)部的電路設(shè)計和工作原理,只需要知道按哪個按鈕可以打開電視,,按哪個按鈕可以調(diào)節(jié)音量,。
7 I; y+ p- j- z1 b. U" C2. 組合優(yōu)于繼承盡管繼承可以使我們更容易地重用和擴展代碼,,但是如果繼承層次過深、繼承關(guān)系過于復(fù)雜,,就會嚴重影響代碼的可讀性和可維護性,。比如我們修改了基類,就可能影響到繼承它的子類,,這會增加迭代的風(fēng)險,。因此,我們更傾向于使用組合而不是繼承,。比如,,我們可以定義一個“電動車”類,它包含“電池系統(tǒng)”,、“制動系統(tǒng)”,、“車身系統(tǒng)”、“轉(zhuǎn)向系統(tǒng)”等組件,,而不是繼承“汽車”類,。
7 l* ?& w& w1 b9 a
! ` u+ ]: I e6 q/ |. t; q y |
評分
-
查看全部評分
|