reklama
Pokud jste něco udělali programování pro začátečníky, nebo jste se dokonce začali zabývat různými jazyky, pravděpodobně jste narazili na frázi „objektově orientované programování“ (nebo „OOP“).
Existuje celá řada technických vysvětlení, co to je, ale dnes se podíváme na definování objektově orientovaného programování jednoduchým způsobem.
Než začneme: Procedurální jazyky
Abyste pochopili, co je objektově orientovaný programovací jazyk, musíte porozumět tomu, co nahradil. Počáteční programovací jazyky byly procedurální - tzv. Protože programátor definoval velmi specifický soubor procedur, které by počítač prováděl.
V nejranějších dnech byly postupy psány na děrných kartách. Tyto kroky provedly data, provedly sled akcí s těmito daty a poté vydaly nová data.
Procedurální jazyky nějakou dobu fungovaly dobře (a některé se stále používají). Ale pokud chcete naprogramovat něco, co přesahuje základní posloupnost kroků, řízení procedurálních jazyků může být obtížné. Tam přichází objektově orientované programování.
Předmět objektově orientovaného programování
Co je tedy objektově orientované programování?
První objektově orientovaný jazyk (obecně se shodl na tom, že je Simula) představil myšlenku objekty. Objekty jsou soubory informací, které jsou považovány za samostatnou entitu.
Za chvíli se budeme hlouběji zabývat tím, co to vlastně znamená, ale nejdřív musíme mluvit třídy. Třídy jsou něco jako pre-objekty. Obsahují seznam atributů, které se po definování stanou objektem.
Vezměme si příklad programování šachové hry. Mohli bychom mít třídu s názvem Piece. V rámci Piece máme seznam atributů:
- Barva
- Výška
- Tvar
- Pohyb povolen
Objekt jednoduše definuje jednu konkrétní instanci věci patřící do této třídy.
Mohli bychom tedy mít objekt s názvem WhiteQueen. Tento objekt by měl definice pro všechny čtyři atributy (bílý, vysoký, válcový s vroubkováním, libovolný počet mezer v libovolném směru). Mohlo by to také mít metody nebo funkce.
Proč je to mnohem lepší než procedurální přístup?
Stručně řečeno, objektově orientované programovací jazyky (jako Java) usnadňuje uspořádání dat a kódu způsobem, který je univerzálnější pro větší projekty.
Abychom o tom diskutovali podrobněji, hovoříme o čtyřech základech objektově orientovaného programování.
Objektově orientované programování: Abstrakce
To, že chcete něco použít, neznamená, že potřebujete vědět, jak to funguje. Například kávovar je složitý. Ale nemusíte vědět, jak to funguje. Musíte jen vědět, že když stisknete „Zapnuto“, dostanete espresso.
Totéž platí pro objekty v objektově orientovaném programování. V našem šachovém příkladu můžeme mít metodu move (). Tato metoda by mohla vyžadovat spoustu dat a dalších metod. Může potřebovat počáteční a konečnou polohovou proměnnou. Mohl by použít jinou metodu pro určení, zda je zachycen kus.
Ale to nemusíte vědět. Vše, co potřebujete vědět, je, že když řeknete kusu, aby se pohyboval, pohyboval se. To je abstrakce.
Objektově orientované programování: Zapouzdření
Zapouzdření je jedním ze způsobů, jak objektově orientované programování vytváří abstrakci. Každý objekt je soubor dat, který je považován za jeden celek. A uvnitř těchto objektů jsou data - proměnné i metody.
Proměnné uvnitř objektu jsou obecně udržovány jako soukromé, což znamená, že k nim nemohou přistupovat jiné objekty a metody. Objekty mohou být ovlivněny pouze pomocí jejich metod.
Biskupský objekt může obsahovat několik informací. Například může mít proměnnou nazvanou „position“. Tato proměnná je nezbytná pro použití metody move (). A samozřejmě má barvu.
Tím, že proměnná pozice bude soukromá a metoda move () veřejná, programátor chrání proměnnou move před ovlivněním něčím jiným. A pokud je barva soukromá proměnná, neexistuje žádný způsob, jak ji změnit jiný objekt, ledaže existuje metoda, která umožňuje změnu. (Což pravděpodobně nemáte, protože barva díla by měla zůstat konstantní.)
Tyto proměnné a metody jsou uchovávány v objektu Bishop. Protože jsou zapouzdřeny, mohl by programátor změnit strukturu nebo obsah objektu bez obav z veřejného rozhraní.
Objektově orientované programování: Dědičnost
Objektové programovací jazyky mají kromě tříd také podtřídy. Ty obsahují všechny atributy z nadřazené třídy, ale mohou také obsahovat další atributy.
V naší šachové hře potřebují figurky figurky metodu, která je dokáže převést na jiné figurky, pokud se dostanou na konec hrací plochy. Říkáme tomu metoda transformPiece ().
Ne každý kus potřebuje metodu transformPiece (). Takže bychom to nechtěli dát do třídy Piece. Místo toho můžeme vytvořit podtřídu s názvem Pěšec. Protože se jedná o podtřídu, zdědí všechny atributy od Piece. Příklad podtřídy Pěšec tedy zahrnuje povolenou barvu, výšku, tvar a pohyb.
Zahrnuje však také metodu transformPiece (). Nyní se už nemusíme obávat náhodného použití této funkce ve věži. Zde je technické vysvětlení:
Vytváření podtříd také šetří spoustu času. Namísto vytváření nových tříd pro všechno mohou programátoři vytvořit základní třídu a poté ji podle potřeby rozšířit na nové podtřídy. (To však stojí za zmínku přílišné spoléhání se na dědictví je špatné 10 Základní principy programování Každý programátor musí dodržovatVždy napište kód, který může udržovat kdokoli, kdo může na vašem softwaru skončit. Za tímto účelem je zde několik zásad programování, které vám pomohou vyčistit váš akt. Přečtěte si více .)
Objektově orientované programování: Polymorfismus
Polymorfismus je výsledkem dědičnosti. Plné porozumění polymorfismu vyžaduje určité znalosti programování, takže se tady budeme jen držet základů. Stručně řečeno, polymorfismus umožňuje programátorům používat metody se stejným názvem, ale s různé objekty.
Například naše třída Piece může mít metodu move (), která pohybuje kusem o jeden prostor v libovolném směru. To funguje pro královou část, ale ne pro nic jiného. Pro vyřešení tohoto problému můžeme definovat novou metodu move () v podtřídě Rook, která definuje pohyb jako neomezený počet mezer vpřed, vzad, vlevo nebo vpravo.
Nyní, když programátor vyvolá metodu move () a použije jako argument kus, program bude přesně vědět, jak by se měl kus pohybovat. To šetří spoustu času při pokusu zjistit, kterou z mnoha různých metod byste měli použít.
Objektově orientované programování v kostce
Pokud se vaše hlava po posledních čtyřech definicích trochu točí, nebojte se. Zde jsou hlavní věci, které si musíte pamatovat:
- Objektově orientované programování shromažďuje informace do jednotlivých entit nazývaných objekty.
- Každý objekt je jedna instance třídy.
- Abstrakce skrývá vnitřní fungování objektu, když není nutné je vidět.
- Zapouzdření ukládá související proměnné a metody do objektů a chrání je.
- Dědičnost umožňuje podtřídám používat atributy z nadřazených tříd.
- Polymorfismus umožňuje objektům a metodám řešit různé situace pomocí jediného rozhraní.
Pokud si tyto body pamatujete, budete mít dobrý přehled o objektově orientovaném programování. Jak jsem zmínil, čtyři základy objektově orientovaného programování mohou být trochu obtížné. Jakmile však začnete programovat, budou jasnější.
Nezapomeňte, že v tomto článku jsme diskutovali pouze obecnosti. Různé objektově orientované jazyky budou mít své vlastní vtípky a způsoby, jak věci dosáhnout. Jednou Vyberte si ten správný jazyk Hledáte nejlepší programovací jazyky? Začněte zde!Ať už jste v programovacích jazycích úplně nováčkem nebo se chystáte skočit do nového druhu programování, jednou z nejdůležitějších otázek je: „Který programovací jazyk je pro mě vhodný?“ Přečtěte si více , začnete se učit, jak zavádí zásady OOP do praxe.
Dann je konzultant pro obsahovou strategii a marketing, který pomáhá společnostem vytvářet poptávku a vede. Také blogy o strategii a marketingu obsahu na dannalbright.com.