Òdinatè, Pwogramasyon
OOP se ki sa? Prensip debaz nan objè-oryante pwogramasyon
Poukisa pwogram objè-oryante pi pito nan pifò pwojè yo? OOP ofri yon fason efikas pou fè fas ak konpleksite yo. Olye pou yo konsidere pwogram nan kòm yon sekans nan enstriksyon ègzèkutabl, li reprezante li kòm yon gwoup objè ki gen sèten pwopriyete ak fè aksyon sèten avèk yo. Sa a mennen nan kreyasyon an plis klè, plis serye ak fasil-a-swiv aplikasyon yo.
prensip debaz yo nan objè-oryante pwogram (op) fòme paske restriksyon yo te jwenn nan apwòch pre-egziste ki. Pami yo - aksè san limit nan done ak yon gwo kantite lyen ki enpoze restriksyon sou entwodiksyon de chanjman yo. Konsyans yo ak rezon yo enpòtan pou yo ka konprann ki OOP se nan pwogramasyon ak ki benefis li yo.
Lang Pwosedi
C, Pascal, FORTRAN ak lang ki similè yo se pwosedi. Sa se, chak nan operatè yo lòd òdinatè a fè yon bagay: jwenn done yo, ajoute moute nimewo yo, divize pa sis, montre rezilta a. Aplikasyon lang pwosedi a se yon lis enstriksyon. Si li piti, pa gen lòt prensip òganizasyonèl (yo rele souvan yon paradigm). Pwogramè a kreye yon lis enstriksyon, ak òdinatè a ègzekutra yo.
Separasyon nan fonksyon yo
Lè aplikasyon yo jwenn pi gwo, lis la sanble yo dwe ankonbran. Kèk ka konprann plis pase kèk santèn enstriksyon jiskaske yo gwoupe ansanm. Pou rezon sa a, te fonksyon an vin yon fason yo fè aplikasyon pou pi plis konprann pou créateur yo. Nan kèk lang, yo ka konsèp la menm rele yon subprogram oswa pwosedi.
Se aplikasyon an divize an fonksyon, chak nan ki gen yon objektif klèman defini ak koòdone.
Lide a nan separasyon nan pwosedi yo ka pwolonje pa gwoupe yo nan yon objè ki pi gwo yo rele yon modil, men prensip la se menm jan: eleman gwoupman ki egzekite enstriksyon lis.
Separasyon nan fonksyon ak modil se youn nan poto yo nan pwogram estriktirèl, ki pou plizyè dekad anvan Aparisyon nan OOP te yon paradigm pre-preferansyèl.
Pwoblèm nan pwogram estriktirèl
Kòm aplikasyon vin pi gwo, pwogram estriktire kòmanse fè eksperyans difikilte. Pwojè te vin twò konplike. Graf yo deplase. Yon pi gwo kantite programmers te enplike. Konpleksite a te grandi. Depans yo skyrocketed, tablo a deplase pi lwen, ak efondre a te vin.
Yon analiz de kòz yo nan echèk sa yo te montre enpèfeksyon yo nan paradigm la pwosedi. Kèlkeswa jan yon apwòch estriktire nan pwogram lan aplike, aplikasyon pou gwo vin twò konplèks.
Ki sa ki lakòz pwoblèm sa yo ki asosye avèk lang pwosedi yo? Premyèman, fonksyon gen aksè san limit nan done global. Dezyèmman, pwosedi ki gen rapò ak siyifikasyon pa modle mond reyèl la.
Si nou konsidere pwoblèm sa yo nan yon kontèks pwogram yon aksyon pran, Lè sa a, youn nan eleman ki pi enpòtan mondyal yo se total inite kontablite yo. Fonksyon diferan ka jwenn aksè a yo antre nan yon nouvo valè, montre li, chanje li, ak sou sa.
Aksè san limit
Nan yon pwogram ekri, pou egzanp, nan C, gen de kalite done. Lokal yo kache andedan fonksyon an ak lòt pwosedi yo pa itilize.
Lè de oswa plis fonksyon bezwen jwenn aksè nan done yo menm, Lè sa a, lèt la dwe mondyal. Sa yo, pou egzanp, se enfòmasyon sou atik yo dwe pran an kont. Done mondyal yo ka jwenn aksè pa nenpòt pwosedi.
Nan yon pwogram gwo gen anpil fonksyon ak anpil eleman mondyal. Pwoblèm nan ak paradigm la pwosedi se ke sa a mennen nan yon nimewo menm pi gwo lyen potansyèl ant yo.
Tankou yon gwo kantite konpoze lakòz difikilte plizyè. Premyèman, sa a konplitché konpreyansyon nan estrikti pwogram lan. Dezyèmman, li fè li difisil pou fè chanjman. Yon chanjman nan yon atik done global ka mande pou tout fonksyon ki gen aksè a li dwe ajiste.
Pou egzanp, nan pwogram nan kontablite yon moun deside ke matirite Kòd objè ta dwe genyen pa de 5 chif, ak pou soti nan 12. Sa a yo pral mande pou yon chanjman kalite a done nan kout nan tan. Koulye a, fonksyon yo ki gen rapò ak kòd yo dwe chanje nan travay ak fòma nan nouvo.
Lè eleman yo chanje nan yon aplikasyon gwo, li difisil pou di ke pwosedi yo gen aksè a yo. Men, menm si sa a se klarifye, chanje yo ka mennen nan travay kòrèk ak lòt done mondyal. Tout se konekte ak tout lòt bagay, se konsa chanjman an nan yon sèl kote yo pral nan yon lòt.
Modèl reyèl nan mond lan
Pwoblèm nan dezyèm ak pi enpòtan nan paradigm la pwosedi se ke kote li yo nan done endividyèl ak fonksyon pa modèl bagay nan mond reyèl la. Isit la nou fè fas ak objè tankou moun ak machin. Yo pa sanble done oswa fonksyon. Konplèks objè reyèl gen atribi ak konpòtman.
Atribi
Men kèk egzanp sou atribi (pafwa yo rele karakteristik) pou moun yo se koulè je ak tit travay, pou machin - pouvwa ak nimewo nan pòt yo. Kòm li te tounen soti, atribi nan mond reyèl la yo ekivalan a done nan pwogram nan. Yo gen siyifikasyon espesifik, tankou ble (koulè je) oswa kat (kantite pòt).
Konpòtman
Konpòtman se sa ki objè mond reyèlman pwodui an repons a kèk kalite enpak. Si ou mande otorite yo ogmante salè yo, repons lan se "wi" oswa "non." Si ou peze fren an, machin nan sispann. Pwononsyasyon ak sispann yo se egzanp konpòtman. Konpòtman se tankou yon pwosedi: yo rele li pou fè yon bagay, e li fè sa. Se konsa, done ak fonksyon pou kont li pa modèl objè reyèl-mond avèk efikasite.
Depanaj
Objè a nan OOP se reprezante kòm yon koleksyon done ak fonksyon. Se sèlman pwosedi yo rele fonksyon manm nan C ++ pèmèt ou jwenn valè li yo. Done se kache ak pwoteje soti nan chanjman. Valè ak fonksyon yo enkli nan yon sèl inite. Enkapulasyon ak kache yo se tèm prensipal yo nan deskripsyon OO lang yo.
Si ou vle chanje done yo, ou konnen egzakteman ki fonksyon kominike avèk yo. Pa gen lòt pwosedi ki ka jwenn aksè nan yo. Sa a senplifye ekri, debogaj ak mentni pwogram nan.
Yon aplikasyon, tankou yon règ, konsiste de objè plizyè ki kominike youn ak lòt, fonksyon manm envoke.
Jodi a lang ki pi lajman itilize nan OOP (objè-oryante pwogramasyon) se C ++ (plis-plis). Java manke kèk fonksyon, tankou endikasyon, modèl, ak eritaj miltip, sa ki fè li mwens pwisan ak versatile pase C ++. C # pa gen ankò rive nan popilarite C + + la.
Li ta dwe remake ke moun ki fonksyon yo manm sa yo rele nan C + + yo rele metòd nan kèk lang OO lòt, tankou Smalltalk. Done eleman yo rele atribi. Rele yon metòd objè ap voye yon mesaj nan li.
Analoji
Ou ka soumèt objè yo nan depatman yo nan konpayi an. Nan pifò òganizasyon, anplwaye yo pa travay yon jou ak kadr, lè a pwochen yo peye salè, ak Lè sa a, pase yon semèn fè biznis Yo Vann an Detay. Chak depatman gen anplwaye pwòp li yo ak responsablite byen klè asiyen. Genyen tou done pwòp: salè, lavant figi, dosye anplwaye, elatriye Moun nan depatman yo travay ak enfòmasyon yo. Separasyon nan konpayi an, kidonk, fasilite kontwòl la sou aktivite li yo epi kenbe entegrite nan done yo. Kontablite ki responsab pou pewòl la . Si ou bezwen konnen kantite total salè ou peye nan branch sid la nan mwa jiyè, ou pa bezwen rummage nan achiv la. Li ase pou voye yon nòt bay moun ki an chaj, rete tann pou moun sa a jwenn aksè nan done yo epi voye yon repons ak enfòmasyon yo mande yo. Sa garanti konfòmite avèk règleman yo ak absans entèferans deyò. Nan menm fason an, objè a nan OOP bay òganizasyon an nan aplikasyon an.
Li ta dwe sonje ke oryantasyon nan objè pa konsène detay yo nan pwogram nan. Pifò C ++ deklarasyon koresponn ak operatè lang pwosedi tankou C. Vreman vre, fonksyon manm nan C ++ yo sanble anpil ak fonksyon nan C. Se sèlman yon kontèks pi laj pral pèmèt yo etabli si enstriksyon an se pwosedi oswa objè-oryante.
Objè nan OOP: definisyon
Lè w ap konsidere pwoblèm lan nan pwogram nan yon lang OO, olye pou yo kesyon sou separasyon li yo nan fonksyon separe, pwoblèm nan nan separasyon nan objè rive. OOP panse fè li pi fasil pou devlope aplikasyon yo. Sa a se akòz resanblans nan lojisyèl ak objè reyèl.
Ki bagay yo vin objè nan OOP? Anba a se kategori tipik.
Objè fizik nan OOP se:
- Transpò nan modèl koule;
- Eleman elektrik nan pwogram konsepsyon sikwi;
- Peyi nan modèl ekonomi an;
- Avyon nan sistèm kontwòl trafik lè.
Eleman nan anviwònman an òdinatè nan itilizatè a:
- Menu;
- Fenèt;
- Graphics (liy, rektang, sèk);
- Klavye, sourit, enprimant, kondui ki gen kapasite.
Moun:
- Anplwaye yo;
- Elèv;
- Kliyan;
- Sellers.
Done:
- Kontablite liv;
- Yon pwoblèm prive;
- Diksyonè;
- Tablo latitid ak longitud nan koloni yo.
Koneksyon ki genyen ant objè reyèl mond ak OOP te rezilta nan yon konbinezon de fonksyon ak done: yo revolusyone pwogramasyon. Pa gen okenn korespondans sa yo fèmen nan lang yo pwosedi yo.
Klas
Objè nan OOP se manm klas yo. Ki sa sa vle di? Programming lang te bati-an kalite done. Kalite int, t. E. Yon nonb antye ki pè ki Predetermined nan C ++. Ou ka deklare nenpòt kantite entè varyab.
Menm jan an tou, se yon seri objè nan klas la menm defini. Li defini fonksyon yo ak done ki enkli nan objè li yo san yo pa kreye yo, menm jan int pa kreye varyab.
Yon klas nan OOP se yon deskripsyon yon kantite objè ki sanble. Prince, pike ak Madonna yo se mizisyen. Pa gen yon sèl moun ki gen non sa a, men moun yo ka sa yo rele si yo gen karakteristik ki apwopriye yo. Objè a OOP se yon egzanp nan klas la.
Teritwa
Nan lavi, klas yo divize an subclasses. Pou egzanp, bèt yo divize an anfibyen, mamifè, zwazo, ensèk, elatriye.
Prensip sa a kalite divizyon se ke chak subclass gen karakteristik komen ak klas la soti nan kote li rive. Tout machin gen wou ak yon motè. Sa yo se karakteristik sa yo defini nan machin yo. Anplis de karakteristik jeneral yo, chak subclass gen karakteristik pwòp li yo. Otobis yo gen anpil plas, ak kamyon yo gen espas pou transpò nan machandiz lou.
Menm jan tou, klas la baz ka vin paran yo nan plizyè subklass sòti ki ka defini pou yo pral pataje karakteristik li yo ak adisyon nan pwòp li yo. Terès se menm jan ak yon fonksyon ki senplifye pwogram pwosedi a. Si plizyè pati nan kòd la fè prèske menm bagay la, ou ka ekstrè eleman yo komen epi mete yo nan yon sèl pwosedi. Twa seksyon aplikasyon ka rele yon fonksyon pou fè aksyon komen, men yo ka fè tou pwòp operasyon yo. Menm jan an tou, klas la baz gen done komen nan gwoup la sòti. Tankou fonksyon, pòsyon tè diminye pwogram nan OO epi klarifye interconnexion nan eleman li yo.
Reuse
Aprè klas la kreye ak debogaj, li ka pase sou lòt pwogramè pou reutilize nan pwòp aplikasyon yo. Sa a se menm jan ak yon bibliyotèk nan fonksyon ki ka enkli nan aplikasyon pou diferan.
Nan OOP, eritaj se yon ekstansyon nan lide nan itilizasyon miltip. Soti nan klas la ki deja egziste, san yo pa chanje li, ou ka kreye yon nouvo ak adisyon nan lòt fonksyon. Fasilite nan revize lojisyèl ki deja egziste se yon avantaj enpòtan nan OOP. Yo kwè ke sa a bay yon ogmantasyon nan retounen sou envestisman inisyal la.
Kreye nouvo kalite done
Objè yo pratik pou kreye nouvo kalite done. Sipoze pwogram lan itilize valè ki genyen de dimansyon (paegzanp, kowòdone oswa latitid ak lonjitid), e gen yon dezi pou eksprime aksyon avèk operasyon aritmetik yo:
Pozisyon1 = pozisyon + orijin,
kote position1, pozisyon ak orijin - yon pè nan valè endepandan nimerik. Kreye yon klas ki gen ladan sa yo de valè ak deklare varyab ak objè li yo kreye yon nouvo kalite done.
Polimorphism, Surcharge
Operatè yo = (egal) ak + (plis) yo itilize nan pozisyon aritmetik pi wo a pa aji nan menm fason ak jan bati-an kalite, tankou int. Objè pozisyon ak lòt moun yo pa predefini, men yo pwograme. Ki jan operatè sa yo konnen ki jan yo okipe yo? Repons lan manti nan lefèt ke ou ka mete nouvo modèl konpòtman pou yo. Operasyon sa yo se fonksyon manm nan klas la Pozisyon.
Itilize nan operatè yo oswa pwosedi yo, sa depann de sa yo travay avèk, yo rele polimorfis. Lè yon operatè ki deja egziste, tankou + oswa =, se kapab travay avèk yon nouvo kalite done, li te di yo dwe twò chaje. Surcharge nan OOP se yon kalite polimorfis. Li se karakteristik enpòtan li yo.
Liv la sou OOP la "objè-oryante pwogramasyon pou nul" pral pèmèt tout moun jwenn konnen ak sijè sa a nan plis detay.
Similar articles
Trending Now