Čo je OOP? - Zásady s príkladmi Výhody nevýhody

Obsah:

Anonim

Čo je OOP?

Objektovo orientované programovanie (OOP) je paradigma programovania, v ktorom sú programy napísané a štruktúrované skôr podľa objektov ako funkcií alebo logiky. Tu sú objekty definované ako dátové polia, ktoré majú jedinečné atribúty a správanie. Obsahujú údaje vo forme atribútov a postupy vo forme metód. Procedúry objektov môžu pristupovať a modifikovať údaje prítomné v objekte.

Existuje mnoho jazykov OOP, z ktorých najobľúbenejšie sú triedy, kde objekty budú inštanciou triedy. Trieda je kontajner pre dáta a procedúry, známy tiež ako dátové členy a členské funkcie. Uvažujme príklad objektu ako automobilu. Auto má atribúty ako farba, obchodný názov, kapacita paliva atď. A má metódy, ktoré vyjadrujú správanie automobilu ako štart, zrýchlenie, brzdenie atď. Trieda je návrh atribútov a metód a nezaberá priestor, kým a pokiaľ nie je vytvorený predmet pre túto triedu.

Príklad :

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
)

Objektovo orientované programovacie ciele, ktoré sa majú implementovať v programovaní, subjekty v reálnom svete, ako je dedičnosť, polymorfizmus, zapuzdrenie atď., Ktoré uvidíme podrobne. Hlavným cieľom OOP je kolektívne spájať údaje a funkcie, ktoré s nimi pracujú, takže tieto údaje sú prístupné iba touto funkciou.

Zásady OOP

Štyri hlavné princípy objektovo orientovaného programovania sú enkapsulácia, abstrakcia, dedičnosť a polymorfizmus.

1. Zapuzdrenie:

Viazanie údajov a metód do jednej jednotky sa nazýva zapuzdrenie. Zapuzdrenie sa dosiahne vtedy, keď si každý objekt v triede ponechá svoj štát súkromný. Dáta vo vnútri tejto jednotky nie sú prístupné vonkajšími objektmi a prístup k nim majú iba funkcie vo vnútri tejto jednotky. Preto objekt riadi svoj stav pomocou svojich metód a na komunikáciu s týmto objektom budeme potrebovať pomoc verejných metód tejto triedy.

2. Abstrakcia

Abstrakcia je predĺženie enkapsulácie. Znamená to poskytnúť vonkajšiemu svetu iba potrebné informácie a zároveň skryť vnútorné podrobnosti vykonávania. Odhaľuje iba vhodné operácie pre iné objekty. Výhodou je, že môžeme zmeniť implementáciu bez ovplyvnenia triedy, pretože rozhranie metódy zostáva rovnaké.

Vezmime príklad kalkulačky, ktorá od nás berie vstup, a po stlačení tlačidla nám poskytne požadovaný výstup, pričom nám šetrí interné podrobnosti o tom, ako dospela k tejto odpovedi.

3. Dedičstvo

Objekty majú často podobnú funkčnosť, zdieľajú časť logiky, ale ostatné sa líšia. Ako teda znovu použiť spoločnú logiku a oddeliť odlišnú logiku? To možno dosiahnuť dedičstvom. V dedičstve vytvárame novú triedu nazvanú ako podradená trieda, ktorá je odvodená od existujúcej triedy nazývanej rodičovská trieda, čím vytvára hierarchiu tried. Podradená trieda opakovane používa dátové polia a metódy, ktoré vyžaduje od nadradenej triedy, a implementuje svoju jedinečnú funkčnosť sama osebe.

Napríklad vozidlo môže byť materskou triedou, z ktorej môžeme odvodiť detské triedy, ako je Bike a Car. Zdieľajú spoločné vlastnosti, ktoré im umožňujú jazdiť na pohonné hmoty a prepravovať cestujúcich, líšia sa však počtom cestujúcich, ktorých môžu nosiť, a ďalšími vlastnosťami.

4. Polymorfizmus

Polymorfizmus je schopnosť mať viac ako jednu formu. Predpokladajme, že máme rodičovskú triedu a niekoľko jej podriadených tried. Teraz chceme používať atribúty z rodičovskej aj podriadenej triedy, tak ako sa to dosiahne? To je možné dosiahnuť pomocou polymorfizmu. V polymorfizme sú abstraktné entity vykonávané rôznymi spôsobmi. Poskytuje spôsob konzumácie triedy presne ako materská trieda, takže nedochádza k zámene so zmiešaním typu tried a každá podriadená trieda si naďalej zachováva svoje metódy tak, ako bola. To sa dá dosiahnuť opätovným použitím nadradeného rozhrania, aby podradená trieda mohla implementovať tieto metódy vo svojej vlastnej verzii.

Výhody objektovo orientovaného programovania

  • Myšlienka skutočného sveta sa dá demonštrovať, pretože všetko v OOP sa považuje za objekt.
  • Pri používaní konceptu zapuzdrenia sa programy ľahšie testujú a udržiavajú.
  • Rýchlejší vývoj kódu sa vykonáva, pretože triedy vyvíjame paralelne namiesto postupne.
  • OOP poskytuje vyššiu bezpečnosť v dôsledku abstrakcie dát. Vonkajší svet nemá prístup k skrytým údajom.
  • Opätovné použitie sa dá dosiahnuť použitím tried, ktoré už boli napísané.

Nevýhody objektovo orientovaného programovania

  • Navrhovanie programu s konceptom OOP môže byť zložité.
  • Programátor musí vopred naplánovať vývoj programu v OOP.
  • Veľkosť programov vyvinutých pomocou OOP je väčšia ako úroveň programov vyvinutých s procedurálnym prístupom.
  • Pretože programy OOP sú väčšie, doba vykonávania týchto programov je tiež väčšia.

Ako môže znalosť OOP pomôcť pri kariérnom raste?

Mnoho hlavných trendových jazykov v týchto dňoch, ako je Java a Ruby, používa objektovo-orientované programovacie koncepty. Jazyky OOP pomáhajú pri písaní softvéru pre aplikácie, ako sú mobilné, webové a herné aplikácie. V týchto oblastiach existujú vysoké zárobky, rovnako ako najlepšie pracovné príležitosti pre programátorov, ktorí v týchto oblastiach ležia. So základmi OOP je ľahké prejsť na rôzne technológie a jazyky, čo rozširuje naše vyhliadky na kariéru. Nevýhodou v tomto je odbornosť. Spoločnosti zvyčajne hľadajú praktické skúsenosti s jazykmi a konceptmi OOP, preto sa odporúča precvičovať sa počas vyučovacieho procesu.

záver

Objektovo orientované programovanie pre nás zjednodušuje proces programovania. Má veľa hodnôt, napríklad opakované použitie, efektívnosť a údržba kódu. Aj keď môže byť spočiatku ťažké pochopiť koncepty OOP, ubezpečujem vás, že ovocie bude stáť za námahu. Dúfam, že tento článok vám pomohol tieto koncepty zjednodušiť!

Odporúčaný článok

Bol to sprievodca Čo je OOP? Tu sme diskutovali o konceptoch, definícii a princípoch s výhodami a nevýhodami OOP. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Je Hadoop Open Source?
  2. Čo je dedičstvo Java?
  3. Čo je multithreading v jazyku C #?
  4. Čo sú webové služby ASP.Net?