Objektově orientované programování
Objektově orientované programování (OOP) je způsob psaní počítačových programů, který využívá myšlenku "objektů" k reprezentaci dat a metod. Obvykle byly počítačové programy jen seznamem instrukcí pro počítač, které mu říkaly, aby určitým způsobem provedl určité věci, což se nazývá procedurální programování. V objektově orientovaném programování však počítačové programy využívají objekty, které spolu komunikují, a mění data v těchto objektech, aby fungovaly způsobem, který si uživatel přeje. Díky způsobu, jakým je objektově orientované programování navrženo, pomáhá vývojáři také tím, že umožňuje snadné opakované použití kódu v jiných částech programu nebo dokonce jinými lidmi.
Většina programovacích jazyků je směsicí různých typů způsobů zápisu počítačových programů. Například jazyk Python umožňuje psát počítačové programy jak v objektově orientovaném, tak v procedurálním programování. Existuje mnoho programovacích jazyků, které umožňují psát počítačové programy v OOP, Některé z těchto programovacích jazyků jsou např: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python atd.
Funkce
Hlavní myšlenkou objektově orientovaného programování je, že vše je objekt. Objekt však může být různého typu:
- Proměnné mohou obsahovat informace (nebo data) různých typů, které podporuje daný programovací jazyk. Příkladem je datový typ celé číslo a datová struktura seznam. Proměnné jsou myšlenkou, která je již k dispozici z procedurálních programovacích jazyků. V objektově orientovaném programování se proměnné označují především jako atributy.
- Procedury (známé také jako funkce, metody nebo rutiny) jsou seznamem instrukcí, které říkají počítači, aby přijal vstup, provedl nějaké výpočty nebo změnil data a vrátil uživateli výstup. Procedury jsou také myšlenkou, která je již dostupná z procedurálních programovacích jazyků. V objektově orientovaném programování se procedury označují především jako metody.
- Třídy jsou kolekcí různých proměnných a procedur. Třídy obvykle komunikují mezi sebou a provádějí změny dat tak, aby fungovaly způsobem, který si uživatel přeje.
Objekty je termín používaný pro označení instancí tříd.
Příklady
V příkladech níže vytvoříme třídu s názvem Human
. Tato třída obsahuje atributy name
(pro jméno člověka) a friend
(pro jméno přítele). Každá z metod třídy Human
obsahuje seznam instrukcí, které využívají atributy name
a friend.
Python
Tento kód je v jazyce Python.
Java
Tento kód je v jazyce Java.
Třída Human
Metoda pro komunikaci s výše uvedenou třídou Human
Kritika
I když je objektově orientované programování populární, existuje mnoho lidí, kteří ho považují za špatné a kritizují ho.
- Luca Cardelli napsal článek s názvem "Bad Engineering Properties of Object-Oriented Languages".
- Richard Stallman v roce 1995 napsal: "Přidání OOP do Emacsu není jednoznačně zlepšením; OOP jsem používal při práci na okenních systémech Lisp Machine a nesouhlasím s obvyklým názorem, že je to lepší způsob programování."
- Studie Potok a kol. nám říká, že mezi OOP a procedurálním přístupem je velmi malý rozdíl v produktivitě.
- Christopher J. Date řekl, že porovnávat OOP s jinými věcmi, zejména jak spolu OOP a jiné věci souvisí, je obtížné, protože lidé se neshodnou na významu OOP.
- Alexander Stepanov naznačil, že OOP poskytuje pohled, který je omezený, pokud jde o matematiku, a nazval ho "téměř stejným podvodem jako umělá inteligence".
- Paul Graham, úspěšný internetový obchodník a programátor, navrhl, že účelem OOP je fungovat jako stádní mechanismus, který brání průměrným programátorům v průměrných organizacích "napáchat příliš mnoho škody". To také zpomaluje rychlejší a lepší programátory, kteří vědí, jak dělat věci výkonnějším a kompaktnějším způsobem. [1]
Otázky a odpovědi
Otázka: Co je to objektově orientované programování?
Odpověď: Objektově orientované programování je způsob psaní počítačových programů, který používá "objekty" jako označení pro data a metody.
Otázka: Jak se objektově orientované programování liší od procedurálního programování?
A: Při procedurálním programování jsou počítačové programy seznamem instrukcí pro počítač, které mu říkají, aby dělal určité věci určitým způsobem. V objektově orientovaném programování používají počítačové programy objekty, které spolu komunikují, aby měnily data v těchto objektech a pracovaly způsobem, který si uživatel přeje.
Otázka: Jaký přínos má objektově orientované programování pro vývojáře?
Odpověď: Objektově orientované programování umožňuje snadné opakované použití kódu v jiných částech programu nebo dokonce jinými lidmi.
Otázka: Čím je známý programovací jazyk Python?
Odpověď: Python umožňuje psát počítačové programy jak v objektově orientovaném programování, tak v procedurálním programování.
Otázka: Můžete uvést příklady programovacích jazyků, které umožňují psát počítačové programy v objektově orientovaném programování?
Odpověď: Mezi programovací jazyky, které umožňují psát počítačové programy v objektově orientovaném programování, patří C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# atd.
Otázka: Co jsou objekty v objektově orientovaném programování?
Odpověď: Objekty jsou v objektově orientovaném programování entity, které obsahují data a metody.
Otázka: Jak objekty v objektově orientovaném programování fungují?
A: Objekty mezi sebou interagují, aby měnily data v těchto objektech a pracovaly způsobem, který si uživatel přeje.