Tak jak už to bývá časem člověk zapomíná a méně používané modifikátory přístupu k objektům jsou přesně adepti na to, aby se nám ztratili z povědomí. Takže jsem se rozhodl si tyto pomocníky zopakovat.
Public
Objekt označený tímto modifikátorem je přístupný odkudkoliv. Takto označený objekt je považován za veřejný. Pokud například označíme metodu třídy modifikátorem public, bude metoda viditelná jak v instanci třídy tak i ve vyděděné třídě.
Private
Objekt označený jako soukromý, přístupný pouze v rámci nadřazeného objektu a není možné k objektu přistupovat od jinud. Například metody třídy označené private nejsou viditelné v instanci třídy a nejsou viditelné ani ve vyděděné třídě.
Protected
Pokud je objekt označen jako chráněný, bude vidět tento objekt pouze v rámci nadřazeného objektu a navíc o proti modifikátoru private bude objekt vidět i ve vyděděném objektu. Takže metoda označená jako protected v bázové třídě bude i v odvozené třídě viditelná ale pouze na úrovni private.
Internal
Tento identifikátor je zajímavý tím, že umožňuje k takto označenému objektu přistupovat v rámci daného sestavení, což může být někdy velmi výhodné. Takže například takto označené enumerátory mohou být přístupné mezi jednotlivými třídami v rámci jedné knihovny, která výsledkem jednoho sestavení. Modifikátor internal se dá také kombinovat jako například protected internal.
Static
Objekty které mají modifikátor přístupu static, jsou zvláštní tím, že k jejich používání není třeba vytvářet instanci objektu a z toho vyplívá i chování objektu. Pokud máme v nějaké třídě například statickou proměnou, a přistupujeme k ní, je společná všem, kteří k ní přistupují.
Abstract
Tento modifikátor říká, že objekt je určen jako řekněme generická šablona pro další odvozování objektů. To znamená, že z objektu není možné vytvářet instance, pouze z jeho následníků. Například, vytvoříme-li si abstraktní třídu člověk která obsahuje obecné metody společné všem lidem. Z této abstraktní třídy můžeme odvodit třídu zaměstnanec, která má navíc metody potřebné pro zaměstnance. Dále pak můžeme odvodit třídu vedoucí, která bude obsahovat navíc metody potřebné pro vedoucího. A z těchto odvozených tříd můžeme vytvářet instance a ty používat.
Virtual
Objekty označené jako virtual jsou určené k možnému přepsání za pomoci modifikátoru override. Nejčastěji je toto použito u metod třídy, z níž se odvozují další třídy a pokud v odvozené třídě je třeba danou metodu přepsat, za předpokladu, že v bázové třídě je použito modifikátoru virtual, je možné tak učinit s tím, že volání a návratová hodnota metody zůstanou stejné a změní se pouze obsah.
Override
Tímto modifikátorem se označují objekty, která nahrazují bázové metody označené jako virtual, jak je řečeno o odstavec výše.
Extern
Toto označení se používá u metod, které jsou implementovány externě v jiném programovacím jazyce.
Sealed
Tento speciální modifikátor ve spojení s override umožňuje přepsat bázovou metodu označenou virtual, ale v dalších odvozeních už tato metoda není přepsatelná, je takzvaně zapečetěná.
Žádné komentáře:
Okomentovat