Objektovo orientované programovanie

Objektovo orientované programovanie (OOP) je spôsob písania počítačových programov, ktorý využíva myšlienku "objektov" na reprezentáciu údajov a metód. Zvyčajne boli počítačové programy len zoznamom inštrukcií pre počítač, ktoré mu hovorili, aby vykonal určité veci určitým spôsobom, čo sa nazýva procedurálne programovanie. V objektovo orientovanom programovaní však počítačové programy využívajú objekty, ktoré medzi sebou komunikujú a menia údaje v týchto objektoch, aby fungovali spôsobom, ktorý chce používateľ. Objektovo orientované programovanie pomáha vývojárovi aj tým, že umožňuje jednoduché opakované použitie kódu v iných častiach programu alebo dokonca inými ľuďmi.

Väčšina programovacích jazykov je zmesou rôznych typov spôsobov písania počítačových programov. Napríklad Python umožňuje písať počítačové programy objektovo orientovaným programovaním aj procedurálnym programovaním. Existuje mnoho programovacích jazykov, ktoré umožňujú písať počítačové programy v OOP, Niektoré z týchto programovacích jazykov sú napr: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python atď.

Funkcie

Hlavnou myšlienkou objektovo orientovaného programovania je, že všetko je objekt. Objekt však môže byť rôzneho typu:

  • Premenné môžu obsahovať informácie (alebo údaje) rôznych typov, ktoré podporuje programovací jazyk. Príkladom je dátový typ celé číslo a dátová štruktúra zoznam. Premenné sú myšlienkou, ktorá je už k dispozícii z procedurálnych programovacích jazykov. V objektovo orientovanom programovaní sú premenné známe najmä ako atribúty.
  • Procedúry (známe aj ako funkcie, metódy alebo rutiny) sú zoznamom inštrukcií, ktoré prikazujú počítaču prijať vstupné údaje, vykonať niektoré výpočty alebo zmeniť údaje a vrátiť výstup používateľovi. Procedúry sú tiež myšlienkou, ktorá je už k dispozícii z procedurálnych programovacích jazykov. V objektovo orientovanom programovaní sú procedúry známe najmä ako metódy.
  • Triedy sú kolekciou rôznych premenných a procedúr. Triedy zvyčajne komunikujú medzi sebou a vykonávajú zmeny údajov, aby fungovali spôsobom, ktorý chce používateľ.

Objekty je termín používaný na označenie inštancií tried.

Príklady

V nasledujúcich príkladoch vytvoríme triedu s názvom Human. Táto trieda obsahuje atribúty name (pre meno osoby) a friend (pre meno priateľa). Každá z metód triedy Human obsahuje zoznam inštrukcií, ktoré využívajú atribúty name a friend.

Python

Tento kód je v jazyku Python.

class Human(object): def __init__(self, name, friend=None): self. name = name self. friend = friend def say_name(self): print("Moje meno je "+self. name) def say_goodnight(self): if self. friend is None: print("Dobrú noc, nikoho.") else: print("Dobrú noc "+self. friend. meno) # Vytvorte nový ľudský objekt s menom "Stephen" stephen = Human("Stephen") # Vytvorte nový ľudský objekt s menom "Joe" a stephen ako priateľ joe = Human("Joe", stephen) stephen. say_name() # Zobrazí sa "Moje meno je Stephen" stephen. say_goodnight() # Zobrazí sa "Dobrú noc nikomu." joe. say_name() # Zobrazí sa "Moje meno je Joe" joe. say_goodnight() # Zobrazí sa "Dobrú noc Stephen

Java

Tento kód je v jazyku Java.

Ľudská trieda

class Human { private String name = "unnamed"; // meno tohto človeka private Human friend = null; // priateľ človeka // Táto metóda po zadaní mena a priateľa vytvorí nový objekt Human public Human(String name, Human friend) { this. name = name; this. friend = friend; }      // Táto metóda tiež vytvorí nový objekt Human, keď je dané len meno public Human(String name) { this. name = name; this. friend = null; }      // Táto metóda vytvorí nový objekt Human, ak nie je zadané meno ani priateľ public Human() { this. name = "unnamed"; this. friend = null; } public void sayName() { System. out. println("Moje meno je " + this. name); } public void sayGoodnight() { if (friend == null) { System. out. println("Dobrú noc, nikto."); } else { System. out. println("Dobrú noc " + friend. name); }     } }

Metóda na komunikáciu s vyššie uvedenou triedou Human

class Main { public static void main(String[] args) { // Vytvorte nový ľudský objekt stephen s menom "Stephen" Human stephen = new Human("Stephen"); // Vytvorte nový ľudský objekt joe s menom "Joe" a stephen ako priateľ Human joe = new Human("Joe", stephen); stephen. sayName(); // Zobrazí "Moje meno je Stephen" stephen. sayGoodnight(); // Zobrazí "Dobrú noc, nikto" joe. sayName(); // Zobrazí "Moje meno je Joe" joe. sayGoodnight(); // Zobrazí "Dobrú noc, Stephen" } }

Kritika

Aj keď je objektovo orientované programovanie populárne, existuje veľa ľudí, ktorí ho považujú za zlé a kritizujú ho.

  • Luca Cardelli napísal článok s názvom "Bad Engineering Properties of Object-Oriented Languages".
  • Richard Stallman v roku 1995 napísal: "Pridanie OOP do Emacsu nie je jednoznačným zlepšením; OOP som používal pri práci na okenných systémoch Lisp Machine a nesúhlasím s obvyklým názorom, že je to lepší spôsob programovania."
  • Štúdia Potok a kol. hovorí, že medzi OOP a procedurálnym prístupom je veľmi malý rozdiel v produktivite.
  • Christopher J. Date povedal, že porovnávanie OOP s inými vecami, najmä ako OOP a iné veci súvisia, je ťažké, pretože ľudia sa nezhodujú na význame OOP.
  • Alexander Stepanov naznačil, že OOP poskytuje pohľad, ktorý je obmedzený, pokiaľ ide o matematiku, a nazval ho "takmer takým istým podvodom ako umelá inteligencia".
  • Paul Graham, úspešný internetový obchodník a programátor, navrhol, že účelom OOP je fungovať ako stádovitý mechanizmus, ktorý zabraňuje priemerným programátorom v priemerných organizáciách "napáchať príliš veľa škody". To zároveň spomaľuje rýchlejších a lepších programátorov, ktorí vedia robiť veci výkonnejším a kompaktnejším spôsobom. [1]

Otázky a odpovede

Otázka: Čo je to objektovo orientované programovanie?


Odpoveď: Objektovo orientované programovanie je spôsob písania počítačových programov, ktorý používa "objekty" na označenie údajov a metód.

Otázka: Ako sa objektovo orientované programovanie líši od procedurálneho programovania?


Odpoveď: Pri procedurálnom programovaní sú počítačové programy zoznamom inštrukcií pre počítač, ktoré mu hovoria, aby robil určité veci určitým spôsobom. V objektovo orientovanom programovaní počítačové programy používajú objekty, ktoré medzi sebou komunikujú, aby zmenili údaje v týchto objektoch a pracovali spôsobom, ktorý chce používateľ.

Otázka: Aký prínos má objektovo orientované programovanie pre vývojárov?


Odpoveď: Objektovo orientované programovanie umožňuje jednoduché opakované použitie kódu v iných častiach programu alebo dokonca inými ľuďmi.

Otázka: Čím je známy programovací jazyk Python?


Odpoveď: Python umožňuje písať počítačové programy v objektovo orientovanom programovaní aj v procedurálnom programovaní.

Otázka: Môžete uviesť príklady programovacích jazykov, ktoré umožňujú písať počítačové programy v objektovo orientovanom programovaní?


Odpoveď: Medzi programovacie jazyky, ktoré umožňujú písať počítačové programy v objektovo orientovanom programovaní, patria C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# atď.

Otázka: Čo sú to objekty v objektovo orientovanom programovaní?


Odpoveď: Objekty sú entity v objektovo orientovanom programovaní, ktoré obsahujú údaje a metódy.

Otázka: Ako fungujú objekty v objektovo orientovanom programovaní?


Odpoveď: Objekty navzájom interagujú, aby sa zmenili údaje v týchto objektoch a aby fungovali spôsobom, ktorý chce používateľ.

AlegsaOnline.com - 2020 / 2023 - License CC3