Mis on OOP?
Objektorienteeritud programmeerimine (või OOP) on programmeerimise paradigma, kus programmid kirjutatakse ja struktureeritakse objektide, mitte funktsioonide või loogika ümber. Siin määratletakse objektid andmeväljadena, millel on kordumatud atribuudid ja käitumine. Need sisaldavad andmeid atribuutide ja protseduuride vormis meetodite kujul. Objekti protseduurid saavad juurde pääseda objektis olevatele andmetele ja neid muuta.
OOP-keeli on palju, kõige populaarsemad on klassipõhised, kus objektid on klassi eksemplarid. Klass on andmete ja protseduuride konteiner, mida tuntakse ka kui andmeliikmed ja liikmefunktsioonid. Vaatleme näitena objekti kui autot. Autol on atribuudid nagu värv, margitoote nimi, kütusemaht jne ja sellel on meetodid, mis tähistavad auto käitumist nagu start, kiirendamine, pidurdamine jne. Klass on atribuutide ja meetodite plaan, mis ei võta ruumi, kuni ja kuni selle klassi objekt pole tehtud.
Näide :
class car
(
char name(20); // name and colour are attributes
char colour(20);
public void start()() //start is a method
);
void main()
(
car c1; //c1 is an object
)
Objektorienteeritud programmeerimise eesmärgid, mida programmeerimisel rakendada reaalse maailma üksuste, näiteks pärimise, polümorfismi, kapseldamise jms jaoks, mida me üksikasjalikult näeme. OOP peamine eesmärk on siduda andmed ja nendel töötavad funktsioonid ühiselt, nii et andmetele oleks juurdepääs ainult selle funktsiooni kaudu.
OOP põhimõtted
Objektorienteeritud programmeerimise neli peamist põhimõtet on kapseldamine, abstraktsioon, pärimine ja polümorfism.
1. Kapseldamine:
Andmete ja meetodite sidumist ühtseks ühikuks nimetatakse kapseldamiseks. Kapseldamine toimub siis, kui iga klassis olev objekt hoiab oma oleku privaatsena. Selle seadme sees olevatele andmetele ei pääse välised objektid juurde ja sellele pääsevad juurde vaid need üksuse funktsioonid. Seega haldab objekt oma olekut oma meetodite abil ja selle objektiga suhtlemiseks vajame selle klassi avalike meetodite abi.
2. Abstraktsioon
Abstraktsioon on kapseldamise laiendus. See tähendab ainult vajaliku teabe edastamist välismaailmale, varjates rakendamise sisemisi detaile. See näitab ainult teiste objektide jaoks sobivaid toiminguid. Selle eeliseks on see, et saame teostust muuta ilma klassi mõjutamata, kuna meetodi liides jääb samaks.
Võtame näiteks kalkulaatori, mis võtab meilt sisendi ja annab ühe nupuvajutusega meile soovitud väljundi, hoides samal ajal meile sisemisi üksikasju selle kohta, kuidas see vastuseni jõudis.
3. Pärimine
Sageli on objektid funktsionaalsusega sarnased, jagades osa loogikast, kuid ülejäänud osas erinevad. Kuidas siis ühist loogikat uuesti kasutada ja erinevat loogikat lahutada? Seda on võimalik saavutada pärimisega. Pärimise käigus loome uue klassi, mida nimetatakse lasteklassiks ja mis tuletatakse olemasolevast klassist, mida nimetatakse vanemklassiks, moodustades klasside hier0archyy. Lasteklass kasutab uuesti andmevälju ja meetodeid, mida ta vanemateklassilt nõuab, ning rakendab oma ainulaadse funktsionaalsuse iseseisvalt.
Näiteks võib sõiduk olla vanemklass, millest saame tuletada lasteklasse, näiteks Bike ja Car. Neil on kütusega sõitmiseks ja reisijate veoks ühised omadused, kuid need erinevad reisijate arvu poolest, mida nad saavad vedada, ja rohkem on selliseid omadusi.
4. Polümorfism
Polümorfism on võime võtta rohkem kui ühte vormi. Oletame, et meil on vanemate klass ja mõned selle lasteklassid. Nüüd tahame kasutada nii vanemate kui ka laste klasside atribuute, kuidas seda saavutada? Seda saab teha polümorfismi abil. Polümorfismis teostatakse abstraktseid entiteete mitmel viisil. See annab võimaluse tarbida klassi täpselt nagu vanemklass, nii et klasside tüübi segamisega pole segadust ja iga lasteklass hoiab oma meetodeid endiselt nii, nagu ta oli. Seda saab teha vanema liidese uuesti kasutamisel, et lasteklass saaks neid meetodeid oma versioonis rakendada.
Objektorienteeritud programmeerimise eelised
- Tõelist ideed saab demonstreerida, kuna OOP-is käsitletakse kõike kui objekti.
- Kuna kasutame kapseldamise mõistet, on programme lihtsam testida ja hooldada.
- Koodi kiirem arendamine toimub, kuna arendame klasse järjestikuse asemel paralleelselt.
- OOP pakub andmete abstraktsiooni tõttu suuremat turvalisust. Välismaailm ei pääse varjatud andmetele juurde.
- Korduvkasutatavust saab saavutada juba kirjutatud klasside abil.
Objektorienteeritud programmeerimise puudused
- Programmi kavandamine OOP kontseptsiooniga võib olla keeruline.
- Programmeerija peab eelnevalt kavandama programmi arendamise OOP-is.
- OOP-iga välja töötatud programmide maht on suurem kui protseduurilise lähenemisega välja töötatud programmide maht.
- Kuna OOP-programmid on suurema suurusega, on ka nende programmide täitmise aeg pikem.
Kuidas saab teadmine OOP-st karjäärikasvu edendamisel?
Paljud tänapäeval populaarseimad keeled, nagu Java ja Ruby, kasutavad objektorienteeritud programmeerimiskontseptsioone. OOP-keeled aitavad tarkvara kirjutada sellistele rakendustele nagu mobiili-, veebi- ja mängurakendused. Nendes valdkondades teenitakse suuri sissetulekuid, näiteks programmeerijate parimad töövõimalused nendel väljadel lebada. OOP põhitõdedega on lihtne liikuda erinevatesse tehnoloogiatesse ja keeltesse ning see avardab meie karjäärivõimalusi. Üks puudus selles juhtub olema asjatundlikkus. Tavaliselt otsivad ettevõtted praktilisi kogemusi OOP-keelte ja -kontseptsioonide osas, seetõttu on soovitatav harjutada õppeprotsessis käies.
Järeldus
Objektorienteeritud programmeerimine lihtsustab meie jaoks programmeerimisprotsessi. Sellel on palju väärtusi, näiteks korduvkasutatavus, tõhusus ja koodi säilitamine. Ehkki OOPide mõistetest võib esialgu olla raske aru saada, kinnitan teile, et viljad on pingutamist väärt. Loodetavasti aitas see artikkel neid mõisteid teie jaoks lihtsustada!
Soovitatav artikkel
See on olnud teemaks Mis on OOP? Siin arutasime kontseptsioone, määratlust ja põhimõtteid koos OOP eeliste ja puudustega. Lisateavet leiate ka meie muudest soovitatud artiklitest -
- Kas Hadoop on avatud lähtekoodiga?
- Mis on Java pärand?
- Mis on C # mitmekorruseline?
- Mis on ASP.Net veebiteenused?