Moose: Porovnání verzí

Smazaný obsah Přidaný obsah
Kychot (diskuse | příspěvky)
→‎01: komentář k řádkům
Kychot (diskuse | příspěvky)
→‎01: terminologie
Řádek 40:
=== 01 ===
 
Tak tedy, vytvoříme si ''třídu'' koček, které umí mňoukat, a dvě její ''instance'', Lízu a Mňauka, které pak z mňoukání vyzkoušíme. Ale ještě k terminologii, která je v objektovém programování celkem obvyklá:
* ''Třída'' je v Perlu v podstatě to samé, co ''balík''. Má to logiku, zpravidla definice tříd jsou i v jiném (např. knihovním) souboru *.pm, ale klidně mohou být i v tom samém souboru. Hlavně to ale znamená, že všechny proměnné tam jsou plně kvalifikované, tj. mají vlastní jmenný prostor, daný názvem třídy.
* Konkrétní ''instance'' se vytvářejí pomocí konstruktoru ''new''
* ''metoda'' je funkce, asociovaná s třídou. Když se volá, má vždy nějaký ''invokant'', se kterým metoda pracuje:
** když vytváříme nový objekt, je tím invokantem ''jméno třídy''
** když voláme metodu u konkrétní instance, je tím invokantem ''tato instance''.
* ''Invokant'' se v Perlu předává funkci jakožto ''první argument''.
 
<source lang='perl' line>
Řádek 74 ⟶ 80:
*9. Používám k tomu knihovnu Moose. (Tím je dané např. i implicitní vytvoření konstruktoru ''new''.)
*11. Podprogram, přesněji řečeno ''metoda'' mňau, kde říkám, jak má libovolná kočka mňoukat.
*13. Uložíme invokant (tedy první parametr funkce) do proměnné $self.
*18.–19. Postupně vytvářím dvě instance koček, tedy dva konkrétní případy, kočky Lízu a Mňouka.
*21.-22. Vyzkouším si, jak mňoukají.