Oglas
Če ste jih že storili začetniško programiranjeali ste sploh začeli gledati različne jezike, verjetno ste naleteli na besedno zvezo "objektno usmerjeno programiranje" (ali "OOP").
Obstajajo različne vrste tehničnih razlag o tem, kaj je, danes pa bomo pogledali, kako definirati objektno usmerjeno programiranje na preprost način.
Preden začnemo: Proceduralni jeziki
Če želite razumeti, kaj je objektno usmerjen programski jezik, morate razumeti, kaj ga je nadomestilo. Zgodnji programski jeziki so bili postopkovni - tako imenovani, ker bi programer opredelil zelo specifičen nabor postopkov, ki jih bo izvajal računalnik.

V najzgodnejših dneh so postopke pisali na udarne kartice. Ti koraki so vzeli podatke, izvedli zaporedje dejanj na teh podatkih in nato oddali nove podatke.
Proceduralni jeziki so nekaj časa delovali dobro (nekateri pa so še vedno v uporabi). Ko pa želite programirati nekaj, ki presega osnovno zaporedje korakov, lahko postopkovne jezike težko upravljate. Tu pridejo objektno usmerjena programiranja.
Predmet objektno usmerjenega programiranja
Kaj je torej objektno usmerjeno programiranje?
Zamisel je predstavil prvi objektno orientiran jezik (za katerega je bilo splošno dovoljeno, da je Simula) predmeti. Predmeti so zbirke informacij, ki se obravnavajo kot posebna enota.
Pognili se bomo globlje v to, kaj dejansko pomeni v sekundi s primerom, vendar moramo najprej govoriti o tem razredov. Razredi so nekako podobni predobjektom. Vsebujejo seznam atributov, ki, ko so definirani, postanejo predmet.

Vzemimo primer programiranja igre v šahu. Morda bi imeli razred, imenovan Piece. Znotraj Piece imamo seznam lastnosti:
- Barva
- Višina
- Oblika
- Dovoljeno gibanje
Predmet preprosto definira en določen primerek stvari, ki pripada temu razredu.
Tako bi lahko imeli objekt, imenovan WhiteQueen. Ta objekt bi imel definicije za vse štiri atribute (bel, visok, valjast z krenellacijami, poljubno število presledkov v kateri koli smeri). Morda tudi bi metode ali funkcije.
Kaj je to toliko boljše od proceduralnega pristopa?
Skratka, objektno usmerjeni programski jeziki (kot je Java) olajša organizacijo podatkov in kode na način, ki je bolj prilagodljiv za večje projekte.
Če ga bomo podrobneje obravnavali, bomo govorili o štirih osnovah objektno usmerjenega programiranja.
Objektno usmerjeno programiranje: abstrakcija
To, da želite nekaj uporabiti, še ne pomeni, da morate vedeti, kako deluje. Na primer, aparat za espresso je zapleten. Ni vam treba vedeti, kako deluje. Samo vedeti morate, da boste, ko pritisnete na »Vklopljeno«, dobili espresso.

Enako velja za predmete v objektno usmerjenem programiranju. V našem šahovskem primeru imamo morda potezo (). Ta metoda bi lahko zahtevala veliko podatkov in drugih metod. Morda potrebuje spremenljivke začetnega in končnega položaja. S pomočjo druge metode lahko ugotovi, ali je ujel kos.
A tega vam ni treba vedeti Vse kar morate vedeti je, da ko rečete kos, da se premika, se premika. To je abstrakcija.
Objektno usmerjeno programiranje: kapsulacija
Enkapsulacija je eden od načinov, da objektno usmerjeno programiranje ustvari abstrakcijo. Vsak predmet je zbirka podatkov, ki se obravnavajo kot ena entiteta. Znotraj teh predmetov so podatki - spremenljivke in metode.
Spremenljivke znotraj predmeta so običajno zasebne, kar pomeni, da drugi predmeti in metode do njih ne morejo dostopati. Na objekte lahko vplivamo le z uporabo svojih metod.
Predmet Bishop lahko vsebuje več informacij. Na primer, lahko ima spremenljivko, imenovano "položaj". Ta spremenljivka je nujna za uporabo metode move (). In seveda ima barvo.
S tem, ko spremenljivko položaja zasebno in metodo premika () javno objavi, programer zaščiti premikalno spremenljivko pred vplivanjem česar koli drugega. In če je barva zasebna spremenljivka, ni nobenega drugega predmeta, da bi jo spremenil, razen če obstaja metoda, ki to omogoča. (Česar verjetno ne bi imeli, saj naj barva kosa ostane konstantna.)
Te spremenljivke in metode se hranijo znotraj predmeta Bishop. Programer lahko spreminja strukturo ali vsebino predmeta, ne da bi skrbel za javni vmesnik.
Objektno programirano: dedovanje
Poleg razredov imajo podklasi tudi objektno usmerjeni programski jeziki. Vsebujejo vse atribute iz nadrejenega razreda, lahko pa vsebujejo tudi druge atribute.
V naši šahovski igri potrebujejo zastavljalnice, ki jih lahko spremenijo v druge koščke, če se do konca plošče. Poimenovali ga bomo metoda transformPiece ().
Vsak kos ne potrebuje metode transformPiece (). Zato ga ne bi radi uvrstili v razred Piece. Namesto tega lahko ustvarimo podvrsto z imenom Zastavljalnica. Ker je podvrsta, podeduje vse atribute iz Piece. Torej primerek podrazreda Zastavlja vključuje dovoljeno barvo, višino, obliko in gibanje.
Vključuje pa tudi metodo transformPiece (). Zdaj nam ni treba skrbeti, da bi pomotoma uporabili to funkcijo na potepu. Tu je tehnična razlaga:
Ustvarjanje podrazredov tudi prihrani veliko časa. Namesto da bi ustvarili nove razrede za vse, lahko programerji ustvarijo osnovni razred in ga nato razširijo na nove podrazrede, ko to potrebujejo. (Vendar je vredno tega opozoriti pretirano zanašanje na dedovanje je slabo 10 osnovnih načel programiranja Vsak programer se mora držatiVedno napišite kodo, ki jo lahko vzdržuje vsakdo, ki lahko na koncu dela z vašo programsko opremo. V ta namen je tukaj več programskih načel, ki vam bodo pomagala očistiti svoje dejanje. Preberi več .)
Objektno usmerjeno programiranje: polimorfizem
Polimorfizem je posledica dedovanja. Popolnoma razumevanje polimorfizma zahteva nekaj programskega znanja, zato se bomo tukaj držali osnov. Skratka, polimorfizem omogoča programerjem, da uporabljajo istoimenske metode, vendar z različnih predmetov.
Na primer, naš razred Piece lahko ima metodo move (), ki kos premakne en prostor v katero koli smer. To deluje za kraljev kos, ne pa za nič drugega. Če želite odpraviti to težavo, lahko v podvrsti Rook določimo novo metodo move (), ki definira gibanje kot neomejeno število presledkov naprej, nazaj, levo ali desno.
Zdaj, ko programer prikliče metodo move () in kot argument uporabi kos, bo program natančno vedel, kako naj se del premika. To prihrani veliko časa, preden poskušate ugotoviti, katere od različnih metod bi morali uporabiti.
Objektno usmerjeno programiranje v matici
Če se vam bo glava nekoliko vrtela po teh zadnjih štirih definicijah, ne skrbite preveč. Tu so glavne stvari, ki si jih morate zapomniti:
- Objektno usmerjeno programiranje zbira informacije v posamezne entitete, imenovane predmeti.
- Vsak predmet je en primerek razreda.
- Abstrakcija skriva notranje delovanje predmeta, ko jih ni treba videti.
- Inkapsulacija shranjuje povezane spremenljivke in metode v predmete in jih ščiti.
- Dedovanje podklasov omogoča uporabo atributov iz nadrejenih razredov.
- Polimorfizem omogoča, da se predmeti in metode z enim vmesnikom spopadajo z več različnimi situacijami.
Če se spomnite teh točk, boste dobro obravnavali, kaj je objektno usmerjeno programiranje. Kot sem omenil, lahko štiri osnove objektno usmerjenega programiranja nekoliko težko rešimo. Ko pa začnete programirati, bodo postali bolj jasni.
Ne pozabite, da smo v tem članku obravnavali samo splošne značilnosti. Različni objektno orientirani jeziki bodo imeli svoje poteze in načine, kako uresničiti stvari. Enkrat ti izberite pravi jezik za vas Iščete najboljše jezike za programiranje? Začni tukaj!Ali ste popolnoma novi v programskih jezikih ali želite skočiti v novo vrsto programiranja, je eno najpomembnejših vprašanj: "Kateri programski jezik je pravi za mene?" Preberi več se boste začeli učiti, kako uresničuje načela OOP.
Dann je vsebinska strategija in marketinški svetovalec, ki podjetjem pomaga ustvarjati povpraševanje in voditi. Na spletni strani dannalbright.com piše tudi bloge o strategiji in vsebinskem marketingu.