Objektově orientované programování: Porovnání verzí

Smazaný obsah Přidaný obsah
HypoBOT (diskuse | příspěvky)
m Přidání šablony Commonscat dle ŽOPP z 28. 7. 2016
Formulace, styl
Řádek 1:
'''Objektově orientované programování''' (zkracováno na ''OOP'', z anglického '''Object-oriented programming''') je v [[Informatika|informatice]] specifické [[programovací paradigma]], které ho odlišilo od původního procedurálního. [[Zdrojový kód|Výkonný kód]] je v objektovém programování přidružen k [[Data|datům]] ([[Metoda (objektově orientované programování)|metody]] jsou ''zapouzdřeny'' v [[Instance třídy|objektech]]), což umožňuje snadnější přenos kódu mezi různými projekty (''abstrakce'' a [[Zapouzdření (objektově orientované programování)|zapouzdření]]). Propojení umožnilo zavést [[Dědičnost (objektově orientované programování)|dědičnost]], ale kvůli zjednodušení si vyžádalo zavedení [[Polymorfismus (programování)|polymorfismu]].
'''Objektově orientované programování''' (zkracováno na ''OOP'', z anglického '''Object-oriented programming''') je [[programovací paradigma]], založené na následujících myšlenkách, koncepci:
 
== Koncepce ==
* ''[[Instance třídy|Objekty]]'' – jednotlivé prvky modelované reality (jak data, tak související funkčnost) jsou v programu seskupeny do [[Entita (informatika)|entit]], nazývaných objekty. Objekty si pamatují svůj stav a navenek poskytují ''operace'' (přístupné jako metody pro volání).
 
* ''Abstrakce'' – [[programátor]], potažmo [[počítačový program|program]], který vytváří, může abstrahovat od některých detailů práce jednotlivých objektů. Každý objekt pracuje jako [[Černá skříňka (kybernetika)|černá skříňka]], která dokáže provádět určené činnosti a komunikovat s okolím, aniž by vyžadovala znalost způsobu, kterým vnitřně pracuje.
 
* ''[[Zapouzdření (objektově orientované programování)|Zapouzdření]]'' – zaručuje, že objekt nemůže přímo přistupovat k „vnitřnostem“ jiných objektů, což by mohlo vést k nekonzistenci. Každý objekt navenek zpřístupňuje ''rozhraní'', pomocí kterého (a nijak jinak) se s objektem pracuje.
 
* ''Skládání[[Objektová kompozice|Kompozice]]'' – Objekt může obsahovat jiné objekty.
 
* ''Delegování'' – Objekt může využívat služeb jiných objektů tak, že je požádá o provedení operace.
Řádek 15:
 
* ''[[Polymorfismus (programování)|Polymorfismus]]'' – odkazovaný objekt se chová podle toho, jaké třídy je instancí. Pozná se tak, že několik objektů poskytuje stejné rozhraní, pracuje se s nimi navenek stejným způsobem, ale jejich konkrétní chování se liší podle implementace. U polymorfismu podmíněného dědičností to znamená, že na místo, kde je očekávána instance nějaké třídy, můžeme dosadit i instanci libovolné její podtřídy, neboť rozhraní třídy je podmnožinou rozhraní podtřídy. U polymorfismu nepodmíněného dědičností je dostačující, jestliže se rozhraní (nebo jejich požadované části) u různých tříd shodují, pak jsou vzájemně polymorfní.
 
 
Některé z těchto vlastností jsou pro OOP unikátní, jiné (např. [[abstrakce]]) jsou běžnou vlastností i jiných vývojových [[Metodika vývoje softwaru|metodik]]. OOP je někdy označováno jako programátorské [[paradigma]], neboť popisuje nejen způsob vývoje a zápisu programu, ale i způsob, jakým návrhář programu o problému přemýšlí.