Reklama

Ak ste niečo urobili programovanie pre začiatočníkov, alebo ste sa začali zaoberať rôznymi jazykmi, pravdepodobne ste narazili na frázu „objektovo orientované programovanie“ (alebo „OOP“).

Existujú rôzne technické vysvetlenia toho, čo to je, ale dnes sa budeme zaoberať definovaním objektovo orientovaného programovania jednoduchým spôsobom.

Skôr ako začneme: Procedurálne jazyky

Aby ste pochopili, čo je objektovo orientovaný programovací jazyk, musíte pochopiť, čo ho nahradilo. Počiatočné programovacie jazyky boli procedurálne - takzvané, pretože programátor definoval veľmi špecifický súbor postupov, ktoré by počítač vykonával.

Čo je objektovo orientované programovanie a ako ho začať učiť

V najskorších dňoch boli postupy napísané na diernych kartách. Tieto kroky vykonali údaje, vykonali postupnosť týchto údajov a potom vydali nové údaje.

Procedurálne jazyky nejaký čas fungovali dobre (a niektoré sa stále používajú). Ak však chcete naprogramovať niečo, čo presahuje základnú postupnosť krokov, riadenie procedurálnych jazykov môže byť náročné. Tu prichádza objektovo orientované programovanie.

instagram viewer

Predmet objektovo orientovaného programovania

Čo je teda objektovo orientované programovanie?

Prvý objektovo orientovaný jazyk (vo všeobecnosti súhlasil so Simula) predstavil myšlienku objektov. Objekty sú zbierky informácií, ktoré sa považujú za jedinečné entity.

V druhej chvíli sa ukážeme príkladom toho, čo to vlastne znamená, ale najprv musíme hovoriť vyučovanie. Triedy sú ako pred-objekty. Obsahujú zoznam atribútov, ktoré sa po definovaní stanú objektom.

Čo je objektovo orientované programovanie a ako ho začať učiť

Ukážme si príklad programovania šachovej hry. Mohli by sme mať triedu s názvom Piece. V rámci Piece máme zoznam atribútov:

  • farba
  • výška
  • tvar
  • Pohyb je povolený

Objekt jednoducho definuje jednu konkrétnu inštanciu veci patriacej do tejto triedy.

Takže by sme mohli mať objekt s názvom WhiteQueen. Tento objekt by mal definície pre všetky štyri atribúty (biely, vysoký, valcový s rohovníkmi, ľubovoľný počet medzier v ľubovoľnom smere). Môže to tiež mať metódy alebo funkcie.

Čo to robí oveľa lepším ako procedurálny prístup?

Stručne povedané, objektovo orientované programovacie jazyky (ako Java) uľahčuje usporiadanie údajov a kódov tak, aby boli pre väčší projekt univerzálnejšie.

Aby sme to podrobnejšie prediskutovali, hovoríme o štyroch základoch objektovo orientovaného programovania.

Objektovo orientované programovanie: Abstrakcia

To, že chcete niečo použiť, neznamená, že potrebujete vedieť, ako to funguje. Napríklad zariadenie na espresso je zložité. Ale nemusíte vedieť, ako to funguje. Musíte len vedieť, že keď stlačíte „Zapnuté“, dostanete espresso.

Čo je objektovo orientované programovanie a ako ho začať učiť

To isté platí pre objekty v objektovo orientovanom programovaní. V našom šachovom príklade môžeme mať metódu move (). Táto metóda by si mohla vyžadovať veľa údajov a ďalších metód. Môže potrebovať počiatočné a konečné premenné polohy. Na určenie, či je zachytený kus, by sa mohla použiť iná metóda.

Ale to nemusíte vedieť. Všetko, čo potrebujete vedieť, je to, že keď poviete kusu, aby sa pohyboval, pohyboval sa. To je abstrakcia.

Objektovo orientované programovanie: Zapuzdrenie

Zapuzdrenie je jedným zo spôsobov, ako objektovo orientované programovanie vytvára abstrakciu. Každý objekt predstavuje súbor údajov, ktoré sa považujú za jeden celok. A v rámci týchto objektov sú údaje - premenné aj metódy.

Premenné v rámci objektu sa vo všeobecnosti udržiavajú súkromné, čo znamená, že k nim iné objekty a metódy nemajú prístup. Objekty môžu byť ovplyvnené iba pomocou ich metód.

Biskupský objekt môže obsahovať niekoľko informácií. Napríklad by mohla mať premennú nazývanú „pozícia“. Táto premenná je potrebná na použitie metódy move (). A samozrejme má farbu.

Zverejnením premennej pozície na súkromnú a metódou move () programátor chráni premennú presunu pred tým, ako ju ovplyvní čokoľvek iné. A ak je farba súkromnou premennou, neexistuje spôsob, ako ju zmeniť iný objekt, pokiaľ nejde o metódu, ktorá umožňuje zmenu. (Čo by ste pravdepodobne nemali, pretože farba figúry by mala zostať konštantná.)

Tieto premenné a metódy sú uchovávané v objekte biskupa. Pretože sú zapuzdrené, mohol by programátor zmeniť štruktúru alebo obsah objektu bez obáv z verejného rozhrania.

Objektovo orientované programovanie: Dedičnosť

Okrem tried majú objektovo orientované programovacie jazyky aj podtriedy. Tieto obsahujú všetky atribúty z rodičovskej triedy, ale môžu obsahovať aj ďalšie atribúty.

V našej šachovej hre potrebujú figúrky metódu, ktorá ich môže zmeniť na ďalšie kúsky, ak sa dostanú na koniec hracej plochy. Nazývame to metóda transformPiece ().

Nie každý kus potrebuje metódu transformPiece (). Nechceli by sme to zaradiť do triedy Piece. Namiesto toho môžeme vytvoriť podtriedu s názvom Pešiak. Pretože je to podtrieda, dedí všetky atribúty od Piece. Napríklad prípad podtriedy Pešiak obsahuje povolenú farbu, výšku, tvar a pohyb.

Zahŕňa však aj metódu transformPiece (). Teraz sa už nikdy nemusíme báť náhodného použitia tejto funkcie na veži. Toto je technické vysvetlenie:

Vytváranie podtried tiež šetrí veľa času. Namiesto vytvárania nových tried pre všetko môžu programátori vytvoriť základnú triedu a potom ju podľa potreby rozšíriť na nové podtriedy. (Je však potrebné poznamenať, že prílišné spoliehanie sa na dedičstvo je zlé 10 Základné princípy programovania Každý programátor musí dodržiavaťVždy napíšte kód, ktorý môže udržiavať každý, kto môže na vašom softvéri skončiť. Na tento účel uvádzame niekoľko zásad programovania, ktoré vám pomôžu vyčistiť váš akt. Čítaj viac .)

Objektovo orientované programovanie: polymorfizmus

Polymorfizmus je výsledkom dedičstva. Plné porozumenie polymorfizmu vyžaduje určité znalosti programovania, takže tu budeme len držať sa základných informácií. Stručne povedané, polymorfizmus umožňuje programátorom používať metódy rovnakého mena, ale s rôzne objekty.

Napríklad naša trieda Piece môže mať metódu move (), ktorá posúva kus o jeden priestor v ľubovoľnom smere. Funguje to pre kráľovský kúsok, ale nie pre nič iné. Na vyriešenie tohto problému môžeme v podtriede Rook definovať novú metódu move (), ktorá definuje pohyb ako neobmedzený počet medzier vpred, vzad, vľavo alebo vpravo.

Keď programátor vyvolá metódu move () a ako argument použije kus, program presne vie, ako by sa mal kus presunúť. To šetrí veľa času pri snahe zistiť, ktorú z mnohých rôznych metód by ste mali použiť.

Objektovo orientované programovanie v skratke

Ak sa vám hlava po posledných štyroch definíciách točí, nebojte sa. Toto sú hlavné veci, na ktoré treba pamätať:

  • Objektovo orientované programovanie zhromažďuje informácie do jednotlivých entít nazývaných objekty.
  • Každý objekt je jednou inštanciou triedy.
  • Abstrakcia skryje vnútorné fungovanie objektu, keď ich nie je potrebné vidieť.
  • Zapuzdrenie ukladá súvisiace premenné a metódy v objektoch a chráni ich.
  • Dedičnosť umožňuje podtriedam používať atribúty z rodičovských tried.
  • Polymorfizmus umožňuje objektom a metódam riešiť jediné situácie s rôznymi situáciami.

Ak si tieto body pamätáte, budete mať dobrý prehľad o objektovo orientovanom programovaní. Ako som už spomenul, štyri základy objektovo orientovaného programovania môžu byť trochu zložité. Ale keď začnete programovať, budú jasnejšie.

Nezabudnite, že v tomto článku sme diskutovali iba o všeobecných ustanoveniach. Rôzne objektovo orientované jazyky budú mať svoje vlastné vtipky a spôsoby, ako veci dosiahnuť. Raz ty Vyberte si ten správny jazyk Hľadáte najlepšie programovacie jazyky? Tu začnite!Či už ste úplne nový v programovacích jazykoch alebo sa chystáte skočiť do nového druhu programovania, jednou z najdôležitejších otázok je položiť si otázku: „Ktorý programovací jazyk je pre mňa vhodný?“ Čítaj viac , začnete sa učiť, ako zavádza princípy OOP do praxe.

Dann je konzultant pre obsahovú stratégiu a marketing, ktorý pomáha spoločnostiam vytvárať dopyt a vedie. Blogy venoval aj stratégii a marketingu obsahu na stránke dannalbright.com.