久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 1400|回復(fù): 1

二次開發(fā)學(xué)習(xí)貼之面向象對象編程

[復(fù)制鏈接]
1#
發(fā)表于 2024-10-4 14:13:53 | 只看該作者 |倒序瀏覽 |閱讀模式
幾乎所有3D軟件的二次開發(fā),基本上都是基于面向?qū)ο缶幊蹋闱宄讉€基本概念對理解程序是非常重要的:
) G# v( X9 C2 E# c* V, ?; {6 h7 x& i. a, p& c
面向?qū)ο蟮幕靖拍?br /> : x. O9 Y% h2 S$ \  b對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐6 l- }8 _& |. \
大的數(shù)據(jù)庫、極其復(fù)雜的自動化工廠、航天飛機都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規(guī)則、計劃或事件。對象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)構(gòu)成一獨立整體。從程序設(shè)計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內(nèi)的操作通常稱為方法。
2 @% X3 J7 W1 s& s4 a# t6 S+ l對象的狀態(tài)用數(shù)據(jù)來表示稱為屬性" k* ]9 R' X" `, o( T8 t
對象的行為用代碼來實現(xiàn)稱為方法, }& A( f" G/ C7 B2 v, `
類:類是對象的模板。即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結(jié)構(gòu)。
% g" ?5 n$ p8 n1 \$ x# {- u  w類與對象的關(guān)系:例如設(shè)計圖紙就是類,依據(jù)圖紙制造的零件就是對象+ }% T1 w# {4 r9 }; q2 y

; v7 I! W' P/ v, F$ G8 W5 h9 b  q面向?qū)ο缶幊逃腥筇匦裕庋b、繼承和多態(tài)。
2 S" O; v' F0 X3 P1. 封裝封裝是把客觀事物封裝成抽象的類,并隱藏實現(xiàn)細節(jié),使得代碼模塊化。比如,我們可以把“汽車”這個客觀事物封裝成一個類,這個類有顏色、型號等屬性,有啟動、加速、剎車等方法,而這些屬性和方法的具體實現(xiàn)則被隱藏起來,使用者只需要知道這個類有哪些屬性和方法,不需要知道這些方法是如何實現(xiàn)的。6 n" Q3 {7 w1 \& V" a+ Z# ]
2. 繼承繼承是面向?qū)ο缶幊痰牧硪粋€重要特性,它提供了一種無需重新編寫,使用現(xiàn)有類的所有功能并進行擴展的能力。比如,我們可以定義一個“電動車”類,它繼承了“汽車”類,就自動擁有了“汽車”類的所有屬性和方法,比如顏色、型號等屬性,啟動、加速、剎車等方法,然后我們還可以在“電動車”類上增加一些新的屬性和方法,比如電池容量、充電方法等。4 {" F: K+ p' y+ X
3. 多態(tài)多態(tài)是指同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。比如,我們定義了一個“汽車”類,它有一個“啟動”方法,然后我們又定義了一個“電動車”類,它繼承了“汽車”類,也有一個“啟動”方法,但是“電動車”類的“啟動”方法的實現(xiàn)可能與“汽車”類的不同,這就是多態(tài)。
) }( Y  X/ H5 n
0 {- g+ ~: M+ X5 Z- d
7 A$ L6 v( C$ i; O$ I0 F3 x面向?qū)ο缶幊痰睦砟?/strong>面向?qū)ο缶幊逃袃蓚€主要的理念,基于接口編程和組合優(yōu)于繼承。
5 Z3 J! x1 A7 |# `1. 基于接口編程基于接口編程的理念是,使用者不需要知道數(shù)據(jù)類型、結(jié)構(gòu)和算法的細節(jié),只需要知道調(diào)用接口能夠?qū)崿F(xiàn)功能。這就像我們使用電視遙控器一樣,我們不需要知道遙控器內(nèi)部的電路設(shè)計和工作原理,只需要知道按哪個按鈕可以打開電視,按哪個按鈕可以調(diào)節(jié)音量。
& _3 G8 N& W2 {/ Z. t; [9 |2. 組合優(yōu)于繼承盡管繼承可以使我們更容易地重用和擴展代碼,但是如果繼承層次過深、繼承關(guān)系過于復(fù)雜,就會嚴重影響代碼的可讀性和可維護性。比如我們修改了基類,就可能影響到繼承它的子類,這會增加迭代的風(fēng)險。因此,我們更傾向于使用組合而不是繼承。比如,我們可以定義一個“電動車”類,它包含“電池系統(tǒng)”、“制動系統(tǒng)”、“車身系統(tǒng)”、“轉(zhuǎn)向系統(tǒng)”等組件,而不是繼承“汽車”類。# D% L& S8 t& S& c3 {
# a2 b( Z5 B% X4 M. S2 ^

評分

參與人數(shù) 1威望 +1 收起 理由
564156415gdr + 1

查看全部評分

回復(fù)

使用道具 舉報

2#
發(fā)表于 2024-10-4 14:34:02 | 只看該作者
你是不是還少說了幾個:- @9 z  Y; X' B  ~: Q/ y3 `5 C8 `' [
抽象是指識別事物的本質(zhì)特征并將其從非本質(zhì)特征中分離出來的過程。在OOP中,抽象通常通過創(chuàng)建抽象類或接口來實現(xiàn),它們定義了一組通用的方法,但沒有具體的實現(xiàn)。抽象幫助我們管理復(fù)雜性,關(guān)注高層次的設(shè)計,而忽略不必要的細節(jié)。6 x( C, Q* w# X3 g& T6 b
方法是與類或?qū)ο笙嚓P(guān)聯(lián)的函數(shù),用于定義對象的行為。它們可以訪問和修改對象的狀態(tài)。
1 F; u& p/ |, ~8 ?0 @! H屬性是與類或?qū)ο笙嚓P(guān)聯(lián)的變量,用于描述對象的狀態(tài)。在某些語言中,屬性可能被稱為字段(field)。  O, h. f& Z9 T

8 m$ o) p8 ^# A- r2 r關(guān)于理念,是不是也少說了幾個。
5 g. {# Z$ A0 X% V* @模塊化是指將程序分解成獨立的、可管理的部分(模塊)。每個模塊負責(zé)程序的一小部分功能。在面向?qū)ο缶幊讨校愂悄K的基本單位。通過模塊化,開發(fā)者可以更容易地理解、測試和維護代碼。3 L! i8 B% w  @8 ?
依賴注入是一種設(shè)計模式,它通過外部配置而非硬編碼來指定對象之間的依賴關(guān)系。這有助于降低組件間的耦合度,提高代碼的可測試性和可維護性。
1 C. ~, g% o" N4 G/ u- b2 ]開閉原則是面向?qū)ο笤O(shè)計的一個重要原則,指出軟件實體(類、模塊、函數(shù)等)應(yīng)該對擴展開放,對修改關(guān)閉。這意味著應(yīng)該可以通過添加新代碼來擴展系統(tǒng)的行為,而不需要修改現(xiàn)有代碼。
4 W* @4 p1 K% d# }單一職責(zé)原則指出一個類應(yīng)該只有一個引起它變化的原因。換句話說,一個類應(yīng)該只有一個職責(zé)或功能。這有助于保持類的簡潔性和可維護性。
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

Archiver|手機版|小黑屋|機械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2025-8-24 21:05 , Processed in 0.078164 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復(fù) 返回頂部 返回列表