Objektově orientované programování (zkráceně OOP) je způsob programování, při kterém specialista nepíše sekvenční kód provádějící úkoly krok za krokem, ale pohlíží na výsledný program jako na množinu několika objektů. Tyto objekty mají různé vlastnosti a navzájem se mezi sebou ovlivňují a komunikují.
Zjednodušeně řečeno: místo aby programátor psal kód shora dolů, pracuje s tzv. třídami a objekty, o nichž ti více prozradíme o pár řádků níže.
Přijde ti to na první pohled komplikované? Pojďme si ukázat malý příklad.
Představ si konkrétní objekt, třeba židli. Tato židle má několik vlastností (váhu, výšku, barvu) a společně s dalšími objekty (např. stůl, skříň, postel) patří do třídy nábytek. Třída tedy tvoří pomyslnou šablonu, od níž se následně odvíjí jednotlivé objekty s různými vlastnostmi.
Zmíněné třídy pak tvoří hlavní pilíř objektového programování, protože právě na nich je postavená struktura kódu programu.
Na obrázku výše vidíš krátkou ukázku objektového programování v jazyce Python. Kód definuje třídu Car (auto), která má vlastnosti jako značka (brand), model, rok výroby (year) a barva (color).
Objektové programování má celou řadu využití, především umožňuje vytvářet komplexní systémy a aplikace. Ty pak programátor dále rozšiřuje dle potřeby, a to právě díky práci s třídami a objekty, které představují prvky reálného světa.
Běžně se OOP využívá i při tvorbě počítačových her, mobilních aplikací nebo třeba operačních systémů. Je ideální pro větší projekty, které se neustále rozvíjí a vylepšují.
Mezi největší výhody objektově orientovaného programování patří:
Možná tě to překvapí, ale OOP využiješ v celé řadě nejznámějších programovacích jazyků. Primárně jde o:
Pokud se naučíš ovládat principy objektového programování jako takového, nebude pro tebe těžké znalosti přenést do jednotlivých jazyků. Ať už začneš u Pythonu, nebo třeba Javy.
Představení OOP by se neobešlo bez zmínky o čtyřech důležitých principech, na kterých celé objektově orientované programování stojí. Jedná se o zapouzdření, polymorfismus, dědičnost a abstrakci.
Co se týče dědičnosti, ta umožňuje vytvářet další třídy založené na již existujících třídách. Nové třídy tak po předchozích „zdědí“ chování a vlastnosti.
Zapouzdření umožňuje skrýt vnitřní (interní) stav objektu a omezit přístup k jeho datům pouze na určité části programu.
Abstrakce pro změnu slouží ke zjednodušování – s její pomocí programátor vytvoří entity z reálného světa tak, aby byl kladen důraz jen na důležité vlastnosti a chování. Abstrakce tím pádem redukuje složitost procesu a poskytuje jednoduché rozhraní pro interakci s objekty.
A na závěr polymorfismus, tedy schopnost objektu reagovat na stejný požadavek různými způsoby v závislosti na svém aktuálním kontextu.
Představ si například různé hračky v krabici. Každá může dělat něco jiného, ale všechny jsou součástí jedné krabice. Když si z nich vybereš jednu hračku a řekneš jí, aby udělala něco speciálního (třeba pisklavý zvuk), nejspíš se bude chovat jinak než ostatní, ale přesto patří mezi ostatní hračky.
Chceš ještě dnes udělat první krok ke změně kariéry a naučit se programovat? Vyber si jeden z našich aktuálně vypsaných kurzů. Po jeho absolvování můžeš začít pracovat jako juniorní IT specialista (v rámci zaměření, které se vybereš).
Pokud máš jakékoliv otázky, neváhej nám kdykoliv napsat na e-mail ahoj@coderslab.cz.