KompiuteriaiProgramavimas

Kas yra OOP? Pagrindiniai objektinio programavimo principai

Kodėl daugelyje projektų pageidautina objektyviai programuoti? OOP yra veiksmingas būdas spręsti jų sudėtingumą. Vietoj to, kad programa laikoma vykdomųjų instrukcijų seka, ji atstovauja tai kaip objektų grupei su tam tikromis savybėmis ir atlieka tam tikrus veiksmus su jais. Tai leidžia sukurti aiškesnes, patikimesnes ir paprastesnes programas.

Pagrindiniai objektinio programavimo (OOP) principai buvo formuojami, nes ankstesniuose metoduose buvo nustatyti apribojimai. Tarp jų - neribota prieiga prie duomenų ir daugybė nuorodų, įvedančių pakeitimų apribojimus. Jų supratimas ir priežastys yra svarbūs, norint suprasti, kas yra OOP programavimo procese ir kokia jo nauda.

Procedūrinės kalbos

C, Pascal, FORTRAN ir panašios kalbos yra procedūrinės. Tai reiškia, kad kiekvienas jų operatorius reikalauja, kad kompiuteris atliktų kažką: gauna duomenis, prideda skaičius, dalijamas į šešias, parodo rezultatą. Procedūrinės kalbos prašymas yra instrukcijų sąrašas. Jei jis yra mažas, nereikalaujama jokio kito organizacinio principo (dažnai vadinamo paradigma). Programuotojas sukuria instrukcijų sąrašą, o kompiuteris jas paleidžia.

Atskyrimas į funkcijas

Kai programos padidėja, sąrašas tampa sudėtingas. Keli žmonės gali suprasti daugiau kaip keletą šimtų instrukcijų tol, kol jie sugrupuoti. Dėl šios priežasties ši funkcija tapo galimybe padaryti programas suprantamesnes jų kūrėjams. Kai kuriose kalbose tą pačią koncepciją galima vadinti paprogramiu ar procedūra.

Paraiška suskirstyta į funkcijas, kurių kiekvienas turi aiškiai apibrėžtą tikslą ir sąsają.

Atskirties į procesą idėja gali būti išplėsta sugrupuojant juos į didesnį objektą, vadinamą moduliu, tačiau principas yra panašus: grupavimas sudedamųjų dalių, kurios vykdo instrukcijų sąrašus.

Skirstymas į funkcijas ir modulius yra vienas iš struktūrinių programavimo kertinių akmenų, kuris keletą dešimtmečių iki OOP atsiradimo buvo pirmtakas.

Struktūrinio programavimo problemos

Kadangi programos išaugo, struktūriniam programavimui prasidėjo sunkumų. Projektai tapo pernelyg sudėtingi. Grafai pasikeitė. Didesnis programuotojų skaičius. Sunkumas išaugo. Išlaidos skyla, grafika pasikeitė toliau ir atsirado žlugimas.

Šių nesėkmių priežasčių analizė parodė procedūrinės paradigmos trūkumus. Nepriklausomai nuo to, kaip įgyvendinamas struktūrinis požiūris į programavimą, didelės programos tampa pernelyg sudėtingos.

Kokios yra šių procedūrų kalbų problemų priežastys? Pirma, funkcijos turi neribotą prieigą prie pasaulinių duomenų. Antra, nesusijusios procedūros ir reikšmės neišreiškia realaus pasaulio.

Jei mes atsižvelgsime į šias problemas pagal atsargų tvarkymo programą, tai vienas iš svarbiausių pasaulio duomenų elementų yra apskaitos vienetų bendras skaičius. Į jas gali patekti įvairios funkcijos, kad būtų galima įvesti naują vertę, rodyti, keisti ir pan.

Neribota prieiga

Pavyzdžiui, C programoje parašyta programa yra dviejų rūšių duomenys. Vietos funkcijos yra paslėptos, o kitos procedūros nenaudojamos.

Kai dvi ar daugiau funkcijų turi prieigą prie tų pačių duomenų, tada pastaroji turi būti globali. Tai, pavyzdžiui, yra informacija apie elementus, į kuriuos reikia atsižvelgti. Visiems duomenims prieinama bet kokia procedūra.

Didelėje programoje yra daug funkcijų ir daugybė pasaulinių elementų. Su procedūrine paradigma susijusi problema yra tai, kad dėl to dar labiau padidėja potencialių ryšių tarp jų lygis.

Toks daug junginių kelia keletą sunkumų. Pirma, tai apsunkina programos struktūros supratimą. Antra, sunku atlikti pakeitimus. Visuotinio duomenų elemento pakeitimas gali prireikti koreguoti visas funkcijas, prie kurių jis gali naudotis.

Pavyzdžiui, apskaitos programoje kažkas nusprendžia, kad svarstomo prekės kodą turėtų sudaryti ne daugiau kaip 5 skaitmenys ir 12 iš jų. Tam reikės keisti duomenų tipą nuo trumpo iki ilgio. Dabar su kodu susijusios funkcijos turi būti pakeistos į darbą naudojant naują formatą.

Kai elementai keičiasi didelėje paraiškoje, sunku pasakyti, kokios procedūros turi prieigą prie jų. Bet net jei tai paaiškinta, jų pakeitimas gali sukelti netinkamą darbą su kitais visuotiniais duomenimis. Viskas yra susijusi su visa kita, taigi vienoje vietoje pasikeitimas bus kitame.

Realiojo pasaulio modeliavimas

Antroji ir svarbesnė procedūrinės paradigmos problema yra ta, kad jo individualių duomenų ir funkcijų vieta nemodifikuoja dalykų realiame pasaulyje. Čia mes susiduriame su tokiais objektais, kaip žmonės ir automobiliai. Jie atrodo ne kaip duomenys ar funkcijos. Sudėtiniai realūs objektai turi atributus ir elgesį.

Atributai

Žmonėms būdingų atributų (kartais vadinamų savybių) pavyzdžiai yra akių spalva ir darbo pavadinimas, o automobiliams - galia ir durų skaičius. Kaip paaiškėjo, atributai realiame pasaulyje yra lygiaverčiai programos duomenims. Jie turi specifines reikšmes, pavyzdžiui, mėlyna (akių spalva) arba keturi (durų skaičius).

Elgesys

Elgesys yra tai, kas sukuria realaus pasaulio objektus tam tikru poveikiu. Jei paprašysite valdžios institucijų padidinti savo atlyginimus, atsakymas yra "taip" arba "ne". Jei paspausite stabdį, automobilis sustos. Tarimas ir sustojimas yra elgesio pavyzdžiai. Elgesys yra kaip procedūra: ji yra vadinama ką nors padaryti, ir ji tai daro. Taigi vien tik duomenys ir funkcijos efektyviai nemodifikuoja realių objektų.

Trikčių šalinimas

Objektas OOP yra pateikiamas kaip duomenų ir funkcijų rinkinys. Tik C + + funkcijos, kurios vadinamos nariu funkcijos, leidžia jums gauti savo vertybes. Duomenys yra paslėpti ir apsaugoti nuo pokyčių. Vertybes ir funkcijas sudaro vienas vienetas. Apibendrinimas ir slėpimas yra pagrindiniai OO kalbų aprašymo terminai.

Jei norite pakeisti duomenis, tiksliai žinote, kurios funkcijos su jais sąveikauja. Jokios kitos procedūros negali prieiti prie jų. Tai supaprastina programos kūrimą, derinimą ir palaikymą.

Paprastai, programa susideda iš kelių objektų, kurie sąveikauja vienas su kitu, nurodydami nario funkcijas.

Šiandien populiariausias OOP (objektinio programavimo) kalba yra C + + (plus-plus). Java trūksta kai kurių funkcijų, tokių kaip rodyklės, šablonai ir daugialypis paveldėjimas, todėl jis yra mažiau galingas ir universalus nei C ++. C # dar nepasiekė C + + populiarumo.

Reikėtų pažymėti, kad vadinamosios narių funkcijos C + + yra vadinamos metodais kai kuriose kitose OO kalbose, pvz., Smalltalk. Duomenų elementai vadinami atributais. Objekto metodo skleidimas yra žinutės siuntimas į jį.

Analogija

Jūs galite pateikti objektus į bendrovės departamentus. Daugumoje organizacijų darbuotojai ne vieną dieną dirba su darbuotojais, kitą kartą jie moka atlyginimus, o po to savaitę praleidžia mažmeninės prekybos verslą. Kiekviename skyriuje yra savo darbuotojai, turintys aiškiai paskirtas pareigas. Taip pat yra savų duomenų: atlyginimai, pardavimų duomenys, darbuotojų įrašai ir kt. Departamentų darbuotojai dirba su savo informacija. Todėl įmonės atskyrimas palengvina jos veiklos kontrolę ir užtikrina duomenų vientisumą. Apskaita yra atsakinga už darbo užmokestį. Jei norite sužinoti visą darbo užmokestį, sumokėtą pietų filiale liepos mėnesį, archyvo nereikia pasikalbėti. Pakanka išsiųsti užrašą atsakingam asmeniui, palaukti, kol šis asmuo gaus prieigą prie duomenų ir išsiųs atsakymą su reikiama informacija. Tai užtikrina taisyklių laikymąsi ir išorės trukdžių nebuvimą. Tuo pačiu būdu, objektas OOP teikia paraiškos organizavimą.

Reikėtų prisiminti, kad orientacija į objektus nėra susijusi su programos detalėmis. Dauguma C ++ teiginių atitinka procedūrinių kalbų operatorių, tokių kaip C. Iš tiesų, nario funkcijos C + + yra labai panašios į C funkcijas. Tik platesnis kontekstas leis nustatyti, ar instrukcija yra procedūrinė ar objektyvi.

Objektas OOP: apibrėžimas

Nagrinėjant programavimo OO kalba problemą, o ne klausimą apie jo atskyrimą į atskiras funkcijas, atsiranda problema, susijusi su atskyrimu į objektus. OOP mąstymas leidžia kurti programas daug lengviau. Taip yra dėl programinės įrangos ir realių objektų panašumo.

Kokie dalykai tampa OOP objektais? Toliau pateikiamos tipiškos kategorijos.

OOP fizinis objektas yra:

  • Transportuoti srautą;
  • Elektriniai elementai grandinės projektavimo programose;
  • Ekonomikos modelio šalys;
  • Oro eismo valdymo sistemos orlaivis.

Vartotojo kompiuterio aplinkos elementai:

  • Meniu;
  • Windows;
  • Grafika (linija, stačiakampis, ratas);
  • Klaviatūra, pelė, spausdintuvas, diskiniai įrenginiai.

Žmonės:

  • Darbuotojai;
  • Studentai;
  • Klientai;
  • Pardavėjai.

Duomenys:

  • Apskaitos knygos;
  • Privatus klausimas;
  • Žodynas;
  • Padėties ir gyvenviečių ilgumos lentelė.

Ryšys tarp realaus pasaulio objektų ir OOP buvo funkcijų ir duomenų derinys: jie pakeitė programavimą. Procedūrinėse kalbose tokios glaudžios korespondencijos nėra.

Klasė

OOP objektai yra klasių nariai. Ką tai reiškia? Programavimo kalbomis yra integruotų duomenų tipai. Int tipas , tai yra sveikasis skaičius, yra iš anksto apibrėžtas C + +. Galite deklaruoti bet kokį int kintamųjų skaičių.

Panašiai apibrėžta tos pačios klasės objektų grupė. Jis apibrėžia funkcijas ir duomenis, įtrauktus į jo objektus, nesudarant jų, taip pat, kaip int nerengia kintamųjų.

OOP klasė yra keleto panašių objektų aprašymas. Princas, Stingas ir Madonna yra dainininkai. Nėra vieno asmens su tokiu pavadinimu, tačiau žmonės gali būti vadinami, jei jie turi tinkamas savybes. OOP objektas yra klasės pavyzdys.

Paveldimumas

Gyvenime klasės yra padalintos į poklasius. Pavyzdžiui, gyvūnai skirstomi į amfibijas, žinduolius, paukščius, vabzdžius ir kt.

Šios rūšies padalijimo principas yra tas, kad kiekvienas poklasis turi bendras charakteristikas klasę, iš kurios ji atsiranda. Visuose automobiliuose yra ratai ir variklis. Tai yra transporto priemonių charakteristikos. Be bendrųjų charakteristikų, kiekvienas poklasis turi savo ypatybes. Autobusuose yra daug sėdimų vietų, sunkvežimiuose yra vietų kroviniams gabenti.

Panašiai bazinė klasė gali tapti tėvų iš kelių išvestų poklasių, kurie gali būti apibrėžti taip, kad jie pasidalys savo charakteristikomis ir prideda savo. Paveldimumas yra panašus į funkciją, kuri supaprastina procedūrinę programą. Jei kelios kodo dalys beveik vienodos, galite išgauti bendrus elementus ir įdėti juos į vieną procedūrą. Trys programų sekcijos gali skambinti funkcija atlikti bendrus veiksmus, tačiau jie taip pat gali atlikti savo veiksmus. Panašiai bazinėje klasėje yra ir išvestinės grupės bendrų duomenų. Kaip ir funkcijos, paveldėjimas mažina OO programą ir patikslina elementų sujungimą.

Pakartotinis naudojimas

Po to, kai klasė sukurta ir derinama, ji gali būti perduota kitiems programuotojams pakartotinai naudoti savo programose. Tai panaši į funkcijų biblioteką, kurią galima įtraukti į įvairias programas.

OOP paveldėjimas yra daugkartinio naudojimo idėja. Iš esamos klasės, nepakeičiant jo, galite sukurti naują, pridedant kitas funkcijas. Esamos programinės įrangos pakartotinio panaudojimo paprastumas yra svarbus OOP pranašumas. Manoma, kad tai padidina pradinių investicijų grąžą.

Naujų duomenų tipų kūrimas

Objektai yra patogūs kuriant naujus duomenų tipus. Tarkime, kad programa naudoja dvimatis vertes (pvz., Koordinates arba platumą ir ilgumą), ir yra noras su jais išreikšti veiksmus aritmetines operacijas:

Pozicija1 = pozicija + kilmė

Kur pozicija1, pozicija ir kilmė yra nepriklausomų skaitinių verčių poros. Kurti klasę, kuri apima šias dvi reikšmes ir deklaruoja kintamuosius su savo objektais, sukuria naują duomenų tipą.

Polimorfizmas, perkrovos

Operatoriai = (lygus) ir + (plius), naudojami aukščiau esančioje padėties aritmetikoje, neveikia taip pat, kaip ir įtaisytieji tipai, pvz., Int. Objektų pozicija ir kitos nėra iš anksto nustatytos, bet yra užprogramuotos. Kaip šie ūkio subjektai žino, kaip juos tvarkyti? Atsakymas yra tai, kad galite nustatyti naujus elgesio modelius jiems. Šios operacijos yra pozicijos klasės nario funkcijos.

Operatorių ar procedūrų naudojimas, priklausomai nuo to, su kuriuo jie dirba, vadinamas polimorfizmu. Kai esamas operatorius, toks kaip + arba =, gali dirbti su naujo tipo duomenimis, jis sako, kad jis yra perkrautas. Perkrovimas OOP yra tam tikras polimorfizmas. Tai yra jo svarbi funkcija.

Knyga apie OOP "Object-Oriented Programming for Dummies" leis kiekvienam susipažinti su šia tema išsamiau.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 lt.unansea.com. Theme powered by WordPress.