Reklaam

Kui olete midagi teinud algaja programmeeriminevõi isegi hakanud uurima erinevaid keeli, olete tõenäoliselt kohanud fraasi „objektorienteeritud programmeerimine” (või „OOP”).

Selle kohta, mis see on, on igasuguseid tehnilisi selgitusi, kuid täna vaatame objektorienteeritud programmeerimise määratlemist lihtsal viisil.

Enne alustamist: protseduurikeeled

Objektorienteeritud programmeerimiskeele mõistmiseks peate mõistma, mida see asendas. Varased programmeerimiskeeled olid protseduurilised - nn seetõttu, et programmeerija määratles väga spetsiifilise protseduuride komplekti, mida arvuti viib läbi.

Mis on objektorienteeritud programmeerimine ja kuidas alustada selle õppimist

Varasematel päevadel kirjutati protseduurid perfokaartidele. Need toimingud hõlmasid andmeid, tegid nende andmetega toimingute jada, seejärel väljastavad uued andmed.

Menetluskeeled töötasid mõnda aega hästi (ja mõned neist on endiselt kasutusel). Kuid kui soovite programmeerida midagi peale põhiliste toimingute jada, võib protseduurikeelte haldamine osutuda keerukaks. Seal tuleb sisse objektorienteeritud programmeerimine.

Objektorienteeritud programmeerimise objekt

Mis siis on objektorienteeritud programmeerimine?

Esimene objektorienteeritud keel (mis üldiselt nõustus olema Simula) tutvustas ideed objektid. Objektid on teabe kogumid, mida käsitletakse ainsuse tervikuna.

Mõelgem näitega sekundis sügavamalt sellele, mida see tegelikult tähendab, kuid kõigepealt peame sellest rääkima klassid. Klassid on omamoodi nagu eelobjektid. Need sisaldavad atribuutide loetelu, mis määratluse korral muutuvad objektiks.

Mis on objektorienteeritud programmeerimine ja kuidas alustada selle õppimist

Võtame näiteks malemängu programmeerimise. Meil võib olla klass nimega Piece. Piece'is on atribuutide loend:

  • Värv
  • Kõrgus
  • Kuju
  • Liikumine on lubatud

Objekt lihtsalt määratleb selle klassi kuuluva asja ühe konkreetse eksemplari.

Nii et meil võiks olla objekt nimega WhiteQueen. Sellel objektil oleks kõigi nelja atribuudi määratlused (valge, pikk, silindriline ja crenellations, suvaline arv tühikuid ükskõik millises suunas). Võib ka olla meetodid või funktsioonid.

Mis teeb selle protseduurilisest lähenemisest nii palju paremaks?

Lühidalt, objektorienteeritud programmeerimiskeeled (nagu Java) hõlbustab andmete ja koodi korraldamist viisil, mis on suurema projekti jaoks mitmekülgsem.

Selle üksikasjalikumaks arutamiseks räägime objektorienteeritud programmeerimise neljast põhitõest.

Objektorienteeritud programmeerimine: abstraktsioon

See, et soovite midagi kasutada, ei tähenda veel, et peaksite teadma, kuidas see töötab. Näiteks espressomasin on keeruline. Kuid te ei pea teadma, kuidas see töötab. Peate lihtsalt teadma, et kui vajutate nuppu „Sees”, saate espressot.

Mis on objektorienteeritud programmeerimine ja kuidas alustada selle õppimist

Sama kehtib objektorienteeritud programmeerimise objektide kohta. Meie malenäites võib meil olla liikuda () meetod. See meetod võib nõuda palju andmeid ja muid meetodeid. Võimalik, et see vajab algse ja lõpliku positsiooni muutujaid. Selle abil saab tüki jäädvustamiseks kasutada mõnda muud meetodit.

Kuid te ei pea seda teadma. Kõik, mida pead teadma, on see, et kui ütled, et tükk liigub, siis see liigub. See on abstraktsioon.

Objektorienteeritud programmeerimine: kapseldamine

Kapseldamine on üks viise, kuidas objektorienteeritud programmeerimine abstraktsiooni loob. Iga objekt on andmekogum, mida käsitletakse ühe tervikuna. Ja neis objektides on andmed - nii muutujad kui ka meetodid.

Objekti muutujaid hoitakse üldiselt privaatsena, mis tähendab, et teised objektid ja meetodid ei pääse neile juurde. Objekte saab mõjutada ainult nende meetodeid kasutades.

Piiskopi objekt võib sisaldada mitut teavet. Näiteks võib sellel olla muutuja, mida nimetatakse positsiooniks. See muutuja on vajalik liikuda () meetodi kasutamiseks. Ja muidugi, sellel on värv.

Tehes positsioonimuutuja privaatseks ja käigu () meetodi avalikuks, kaitseb programmeerija teisaldatavat muutujat millegi muu mõjutamise eest. Ja kui värv on privaatmuutuja, pole teisel objektil seda võimalik muuta, kui pole meetodit, mis seda võimaldab. (Mida teil tõenäoliselt poleks, kuna tüki värv peaks jääma samaks.)

Neid muutujaid ja meetodeid hoitakse objektis Bishop. Kuna nad on kapseldatud, võib programmeerija muuta objekti struktuuri või sisu, muretsemata avaliku liidese pärast.

Objektorienteeritud programmeerimine: pärimine

Objektorienteeritud programmeerimiskeeltel on lisaks klassidele ka alamklassid. Need sisaldavad kõiki vanemklassi atribuute, kuid võivad sisaldada ka muid atribuute.

Meie malemängus vajavad etturitükid meetodit, mille abil saab need muudeks tükkideks muuta, kui nad panevad selle laua taha. Me nimetame seda meetodiks transformPiece ().

Mitte iga tükk ei vaja transforPiece () meetodit. Nii et me ei tahaks seda tükkide klassi panna. Selle asemel võime luua alamklassi Ettur. Kuna tegemist on alamklassiga, pärandab see tüki kõik atribuudid. Seega sisaldab alamklassi Ettur näiteks lubatud värvi, kõrguse, kuju ja liikumist.

Kuid see hõlmab ka meetodit transformPiece (). Nüüd ei pea me kunagi muretsema selle funktsiooni tahtmatu kasutamise pärast vankeril. Siin on tehniline selgitus:

Alamklasside loomine säästab ka palju aega. Kõigile uute klasside loomise asemel saavad programmeerijad luua põhiklassi ja laiendada seda vajadusel uutele alamklassidele. (Siiski väärib seda märkimist ülemäärane sõltuvus pärandist on halb 10 peamist programmeerimispõhimõtet, mida iga programmeerija peab järgimaKirjutage alati kood, mida saavad hooldada kõik, kes võivad teie tarkvaraga töötada. Selleks on siin mitu programmeerimispõhimõtet, mis aitavad teil oma tegevust puhastada. Loe rohkem .)

Objektorienteeritud programmeerimine: polümorfism

Polümorfism on pärimise tulemus. Polümorfismi täielikuks mõistmiseks on vaja programmeerimisteadmisi, nii et me jääme siin ainult põhitõdedest kinni. Lühidalt - polümorfism võimaldab programmeerijatel kasutada samanimelisi meetodeid, kuid koos erinevad objektid.

Näiteks võib meie Tükiklassis olla teisaldamise () meetod, mis liigutab tükki ühe tühiku suvalises suunas. See sobib kuningatüki jaoks, kuid mitte millegi muu jaoks. Selle probleemi lahendamiseks saame alamklassis Rook määratleda uue liikumise () meetodi, mis määratleb liikumise piiramatu arvu tühikutena edasi, taha, vasakule või paremale.

Kui programmeerija kutsub liikumise () meetodit kasutama ja argumendina kasutama tükki, teab programm täpselt, kuidas tükk peaks liikuma. See säästab palju aega, kui proovite välja mõelda, millist paljudest erinevatest meetoditest peaksite kasutama.

Objektorienteeritud programmeerimine lühidalt

Kui teie pea keerleb pärast neid nelja viimast määratlust natuke, ärge muretsege liiga palju. Siin on peamised asjad, mida peate meeles pidama:

  • Objektorienteeritud programmeerimine kogub teavet üksikuteks üksusteks, mida nimetatakse objektideks.
  • Iga objekt on klassi üks eksemplar.
  • Abstraktsioon peidab objekti sisemised toimingud, kui neid pole vaja näha.
  • Kapseldamine salvestab seotud muutujad ja meetodid objektides ning kaitseb neid.
  • Pärimine võimaldab alamklassidel kasutada vanemklasside atribuute.
  • Polümorfism võimaldab objektidel ja meetoditel käsitleda ühe liidese abil mitmeid erinevaid olukordi.

Kui suudate neid punkte meelde jätta, saate objektiivsele programmeerimisele hästi hakkama. Objektorienteeritud programmeerimise neli põhitõde, nagu ma mainisin, võib olla pisut keeruline käsitsemisega hakkama saada. Kuid kui hakkate programmeerima, muutuvad need selgemaks.

Pidage meeles, et me oleme selles artiklis arutanud ainult üldistusi. Erinevatel objektorienteeritud keeltel on oma veidrad ja viisid, kuidas asju juhtuda. Ükskord sa vali endale sobiv keel Kas otsite parimaid programmeerimiskeeli? Alusta siit!Ükskõik, kas olete programmeerimiskeelte osas täiesti uus või soovite proovida uut tüüpi programmeerimist, on üks olulisemaid küsimusi: "Milline programmeerimiskeel sobib mulle?" Loe rohkem , hakkate õppima, kuidas see OOP põhimõtteid praktikas rakendab.

Dann on sisestrateegia ja turunduskonsultant, kes aitab ettevõtetel nõudlust tekitada ja viib. Samuti ajaveeb ta veebiaadressil dannalbright.com strateegia- ja sisuturunduse kohta.