国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

機(jī)械社區(qū)

標(biāo)題: 二次開發(fā)學(xué)習(xí)貼之面向象對象編程 [打印本頁]

作者: 怕瓦落地2011    時(shí)間: 2024-10-4 14:13
標(biāo)題: 二次開發(fā)學(xué)習(xí)貼之面向象對象編程
幾乎所有3D軟件的二次開發(fā),基本上都是基于面向?qū)ο缶幊?,而搞清楚幾個(gè)基本概念對理解程序是非常重要的:
+ \% H' k/ R; Q! m: {
5 a( G) V. F5 d2 U' ]' I! ^面向?qū)ο蟮幕靖拍?br /> 4 N' A& U# q4 |/ n( ], _對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐9 |# U- X/ y' X% f0 `2 n& L' b
大的數(shù)據(jù)庫、極其復(fù)雜的自動(dòng)化工廠、航天飛機(jī)都可看作對象,它不僅能表示有形的實(shí)體,也能表示無形的(抽象的)規(guī)則、計(jì)劃或事件。對象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)構(gòu)成一獨(dú)立整體。從程序設(shè)計(jì)者來看,對象是一個(gè)程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內(nèi)的操作通常稱為方法。
7 f' G% c# _! N: w  ^( V& Q對象的狀態(tài)用數(shù)據(jù)來表示稱為屬性
* J6 b* @! C0 d4 i' u! _4 _- `對象的行為用代碼來實(shí)現(xiàn)稱為方法6 z/ Z5 @) ?9 b- {& U% l7 M
類:類是對象的模板。即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個(gè)類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實(shí)例。類可有其子類,也可有其它類,形成類層次結(jié)構(gòu)。
1 T* L1 e# K7 Z類與對象的關(guān)系:例如設(shè)計(jì)圖紙就是類,依據(jù)圖紙制造的零件就是對象
: T4 R) m& t+ `8 ~! T% t* X5 p: @6 x6 H" b: V. K0 s$ h9 T
面向?qū)ο缶幊逃腥筇匦?,封裝、繼承和多態(tài)。
+ b9 p6 @. V7 t- L( R4 i1 E1. 封裝封裝是把客觀事物封裝成抽象的類,并隱藏實(shí)現(xiàn)細(xì)節(jié),使得代碼模塊化。比如,我們可以把“汽車”這個(gè)客觀事物封裝成一個(gè)類,這個(gè)類有顏色、型號等屬性,有啟動(dòng)、加速、剎車等方法,而這些屬性和方法的具體實(shí)現(xiàn)則被隱藏起來,使用者只需要知道這個(gè)類有哪些屬性和方法,不需要知道這些方法是如何實(shí)現(xiàn)的。
0 U$ Q0 Q2 m, l7 D+ O2. 繼承繼承是面向?qū)ο缶幊痰牧硪粋€(gè)重要特性,它提供了一種無需重新編寫,使用現(xiàn)有類的所有功能并進(jìn)行擴(kuò)展的能力。比如,我們可以定義一個(gè)“電動(dòng)車”類,它繼承了“汽車”類,就自動(dòng)擁有了“汽車”類的所有屬性和方法,比如顏色、型號等屬性,啟動(dòng)、加速、剎車等方法,然后我們還可以在“電動(dòng)車”類上增加一些新的屬性和方法,比如電池容量、充電方法等。
% {/ L4 W: E* i7 P5 w3. 多態(tài)多態(tài)是指同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。比如,我們定義了一個(gè)“汽車”類,它有一個(gè)“啟動(dòng)”方法,然后我們又定義了一個(gè)“電動(dòng)車”類,它繼承了“汽車”類,也有一個(gè)“啟動(dòng)”方法,但是“電動(dòng)車”類的“啟動(dòng)”方法的實(shí)現(xiàn)可能與“汽車”類的不同,這就是多態(tài)。
$ N2 m6 J9 D- V
1 A/ e3 v& k: n# c$ c# q- c$ X; B! E; E# {- |7 B# k( c
面向?qū)ο缶幊痰睦砟?/strong>面向?qū)ο缶幊逃袃蓚€(gè)主要的理念,基于接口編程和組合優(yōu)于繼承。% k7 G" d5 Y  K7 F
1. 基于接口編程基于接口編程的理念是,使用者不需要知道數(shù)據(jù)類型、結(jié)構(gòu)和算法的細(xì)節(jié),只需要知道調(diào)用接口能夠?qū)崿F(xiàn)功能。這就像我們使用電視遙控器一樣,我們不需要知道遙控器內(nèi)部的電路設(shè)計(jì)和工作原理,只需要知道按哪個(gè)按鈕可以打開電視,按哪個(gè)按鈕可以調(diào)節(jié)音量。
" A) J$ r) y3 a" c8 U: n$ @3 Q2. 組合優(yōu)于繼承盡管繼承可以使我們更容易地重用和擴(kuò)展代碼,但是如果繼承層次過深、繼承關(guān)系過于復(fù)雜,就會(huì)嚴(yán)重影響代碼的可讀性和可維護(hù)性。比如我們修改了基類,就可能影響到繼承它的子類,這會(huì)增加迭代的風(fēng)險(xiǎn)。因此,我們更傾向于使用組合而不是繼承。比如,我們可以定義一個(gè)“電動(dòng)車”類,它包含“電池系統(tǒng)”、“制動(dòng)系統(tǒng)”、“車身系統(tǒng)”、“轉(zhuǎn)向系統(tǒng)”等組件,而不是繼承“汽車”類。8 ^" _: z) K% F+ E
: E7 e4 W- z' q* `$ n# A

作者: 學(xué)者11    時(shí)間: 2024-10-4 14:34
你是不是還少說了幾個(gè):
% }0 O. b5 j2 x8 e抽象是指識(shí)別事物的本質(zhì)特征并將其從非本質(zhì)特征中分離出來的過程。在OOP中,抽象通常通過創(chuàng)建抽象類或接口來實(shí)現(xiàn),它們定義了一組通用的方法,但沒有具體的實(shí)現(xiàn)。抽象幫助我們管理復(fù)雜性,關(guān)注高層次的設(shè)計(jì),而忽略不必要的細(xì)節(jié)。
) J. @* g3 r+ a8 ^方法是與類或?qū)ο笙嚓P(guān)聯(lián)的函數(shù),用于定義對象的行為。它們可以訪問和修改對象的狀態(tài)。
& G0 O! ~& G  P6 D屬性是與類或?qū)ο笙嚓P(guān)聯(lián)的變量,用于描述對象的狀態(tài)。在某些語言中,屬性可能被稱為字段(field)。8 [. }* C+ b. [$ V% @9 C
2 @7 b- e0 R) [
關(guān)于理念,是不是也少說了幾個(gè)。  O: o( D- r6 G. y/ H1 x
模塊化是指將程序分解成獨(dú)立的、可管理的部分(模塊)。每個(gè)模塊負(fù)責(zé)程序的一小部分功能。在面向?qū)ο缶幊讨校愂悄K的基本單位。通過模塊化,開發(fā)者可以更容易地理解、測試和維護(hù)代碼。9 X- R( ]" t/ d5 q
依賴注入是一種設(shè)計(jì)模式,它通過外部配置而非硬編碼來指定對象之間的依賴關(guān)系。這有助于降低組件間的耦合度,提高代碼的可測試性和可維護(hù)性。
5 C+ _0 i- l! ]9 U( `- Y9 N開閉原則是面向?qū)ο笤O(shè)計(jì)的一個(gè)重要原則,指出軟件實(shí)體(類、模塊、函數(shù)等)應(yīng)該對擴(kuò)展開放,對修改關(guān)閉。這意味著應(yīng)該可以通過添加新代碼來擴(kuò)展系統(tǒng)的行為,而不需要修改現(xiàn)有代碼。
" c9 N6 \% n8 ~- O" e8 j單一職責(zé)原則指出一個(gè)類應(yīng)該只有一個(gè)引起它變化的原因。換句話說,一個(gè)類應(yīng)該只有一個(gè)職責(zé)或功能。這有助于保持類的簡潔性和可維護(hù)性。




歡迎光臨 機(jī)械社區(qū) (http://www.whclglass.com.cn/) Powered by Discuz! X3.5