Metoda (programování): Porovnání verzí

Smazaný obsah Přidaný obsah
ArthurBot (diskuse | příspěvky)
m robot přidal: be-x-old, bs, de, es, et, fr, it, ja, lt, nl, pl, ru, sh, simple, sv, ta, uk, zh
Bez shrnutí editace
Řádek 1:
'''Metody''' v [[Objektově orientované programování|objektově orientovaném programování]] (OOP) jsou podobné [[Funkce (programování)|funkcím]], které můžete znát z [[Funkcionální programování|funkčního]] [[programování]]. V OOP jsou v podstatě také funkcemi, které mohou pracovat s daty [[Objekt (programování)|objektu]]. Z vnějšku jsou neviditelné -&ndash; nepřístupné, jelikož jsou zapouzdřené v objektu a nelze je volat přímo. Metody určené k tomu, aby s daty objektu mohly pracovat i jiné objekty, nazýváme [[Objektově orientované programování#Rozhraní objektů|rozhraním]] objektu.<br />
== Typy metod ==
=== Statické metody ===
Jsou součástí [[Třída (programování)|třídy]], ale lze je použít aniž by byla vytvářena [[Instance třídy|instance třídy]]. Chceme-li označit danou metodu jako statickou, použijeme [[Klíčové slovo|klíčové slovo]] ''static''.
=== Konečné (finální) metody ===
Metody se mohou v [[Potomek třídy (objektově orientované programování)|odvozených třídách]] překrývat, ale existují případy, kdy chceme mít jistotu, že danou metodu nebude možné změnit. Slouží k tomu konečné metody, které '''nemohou být "&bdquo;přepsány"'''&ldquo; v žádné z odvozených tříd. Chceme-li označit danou metodu jako konečnou, použijeme klíčové slovo ''final''.
=== Abstraktní (virtuální) metody ===
Při návrhu se lze setkat s případy, kdy chceme nechat [[Implementace|implementaci]] určitých metod až na potomky. Jako příklad lze uvést třídu ''Obrazec'', která definuje obecný [[Geometrický útvar|geometrický útvar]] a u níž víme, že potomci budou mít stejné metody (např. [[Obvod (geometrie)|obvod]] a [[Obsah|obsah]]), ale jejich implementace bude různá. Pokud tedy označíme metodu jako ''abstraktní'' říkáme tím, že tuto metodu implementuje její potomek. Tyto metody se většinou označují klíčovým slovem ''abstract'' nebo ''virtual''.
Řádek 37:
</source>
=== Speciální metody ===
Sem patří [[Konstruktor|konstruktor]], [[Destruktor|destruktor]] a tzv. '''"&bdquo;gettery"'&ldquo;'' a '''"&bdquo;settery"'&ldquo;''. Poslední dvě zmiňované metody neslouží k ničemu jinému, než k nastavování a získávání hodnot daných vlastností. Není vhodné vlastnosti tříd definovat jako ''veřejné'', mohlo by např. dojít k nechtěné změně jejich hodnot, ale jako ''chráněné'' nebo ''soukromé'' a k těmto vlastnostem pak přistupovat pomocí zmíněných ''getterů'' a ''setterů''. Jejich názvy by měly začínat slovem ''get_'' nebo ''set_''.
 
== Modifikátory přístupu ==