Co je vnořená třída?
V objektově orientovaném programování (OOP) je vnořená třída třída, která je zcela obsažena v jiné třídě. Pro tuto objektově orientovanou strukturu je podporována řada počítačových jazyků, včetně C ++ a programovacího jazyka Java. Pokud vnořená třída není prohlášena za statickou, lze ji také nazvat vnitřní třídou. Třída může obsahovat libovolný počet vnitřních tříd a každá vnitřní třída může také obsahovat vlastní vnitřní třídy. Vnořené třídy mohou být velmi užitečné, ale mohou také velmi rychle zkomplikovat struktury tříd, takže je nejlepší je používat jako součást pečlivého plánu, aby se zbytečně nestaly složitými.
Vnořená třída je často užitečná pro zapouzdření malých skupin funkcí nebo proměnných, které jsou užitečné pro jinou konkrétní třídu. Například pokud třída A obsahuje skupinu metod, které používá pouze, mohou být tyto metody seskupeny do vnitřní třídy B. Metody uvnitř vnitřní třídy mají přístup k proměnným a metodám vnější třídy a podle potřeby si zachovávají své vlastní proměnné nebo konstanty. Vnořenou třídu lze použít jako funkční nebo organizační konstrukci; zatímco je užitečné zapouzdřit funkčnost, je stejně užitečné jako organizační nástroj. Ideální použití vnitřních tříd bude sdružovat související funkce a organizovat kód pro snazší čitelnost a porozumění.
Komentáře by měly být prováděny na vnořené třídě stejně jako u vnější třídy; pro začátečníky je snadné zaměnit vnitřní třídy s metodami a zapomenout na to. Při komentování vnořené třídy je nejlepší myslet na ni jako na třídu nejvyšší úrovně a podle toho ji komentovat. Poznámky k vnitřní třídě také poskytují programátorovi příležitost objasnit funkčnost vnitřní třídy a zdůvodnění jejího organizačního schématu. V jedné vnější třídě může existovat více vnitřních tříd, takže je zvlášť důležité, aby programátor každý jasně komentoval každou.
Pokud vnořená třída není deklarována jako statická, musí být instance vnější třídy explicitně vytvořena před vytvořením instance vnitřní třídy. U vnitřních tříd, které jsou deklarovány jako statické, to není pravda. Statická vnořená třída může být obvykle vytvořena s menším úhozem kláves a může mít širší rozsah než jednoduchá vnitřní třída, takže statické vnořené třídy jsou užitečné pro vytváření snadno přístupných pomocných metod, jako jsou továrny nebo jednoduché samostatné metody s širokými aplikacemi.
Vývojářům je často užitečné, když jsou vnořené třídy popsány pomocí Unified Modeling Language. Unified Modeling Language vysvětluje a ilustruje strukturu a chování tříd jednoznačným způsobem, často pomocí diagramů. Vnořené třídy dostávají nezávislé popisy od vnějších tříd, ve kterých sídlí, takže je velmi snadné identifikovat a analyzovat jejich funkčnost. Přestože není vyžadováno, aby vnořená třída byla tímto způsobem anotována, je často lepší, když se programátoři mýlí na straně podrobnějších informací.