V Javě jsou vnitřní třídy třídami definovanými uvnitř jiné třídy. Mají přístup ke všem členům vnější třídy a mohou být použity k implementaci složité struktury programu. Interní třídy v Javě lze rozdělit do několika typů, včetně místních tříd, anonymních tříd, statických tříd a interních tříd.
Jedním z nejběžnějších typů vnitřních tříd je vnitřní třída. Chcete-li vytvořit objekt vnitřní třídy v Javě, musíte nejprve vytvořit objekt vnější třídy. Objekt vnější třídy lze poté použít k vytvoření objektu vnitřní třídy.
Řekněme například, že máme třídu " vnější "a třídu"vnitřní":
Chcete-li vytvořit objekt vnější třídy, můžeme napsat následující kód:
External external = new External();
Poté k vytvoření objektu vnitřní třídy můžeme použít objekt vnější třídy následovně:
External.Inner inner = external.new Inner();
Nyní máme objekt vnější třídy "external" a objekt vnitřní třídy "inner", které lze použít k interakci s příslušnými třídami.
Základní pojmy a principy
Statická vnitřní třída má statický kontext a lze ji vytvořit bez vytvoření instance vnější třídy. Má přístup pouze ke statickým členům vnější třídy.
Nestatická vnitřní třída je členem vnější třídy a má přístup ke všem členům vnější třídy, včetně jejích soukromých členů. Lze jej vytvořit pouze prostřednictvím instance externí třídy.
Chcete-li vytvořit objekt vnitřní třídy, musíte nejprve vytvořit objekt vnější třídy a poté tento objekt použít k vytvoření objektu vnitřní třídy.
Jak vytvořit objekt vnitřní třídy
Chcete-li vytvořit objekt vnitřní třídy, musíte nejprve vytvořit objekt vnější třídy. Poté použijte syntaxi:
Vnější třída.Vnitřní třída proměnná = vnější třída.nová vnitřní Třída();
- Vytvořte vnější třídu Outer s vnitřní třídou Inner :
class Outer >>
- Vytvořte objekt vnější třídy:
Outer outerObject = new Outer();
- Vytvořte objekt vnitřní třídy:
Outer.Inner innerObject = outerObject.new Inner();
- Vyvolejte metodu interní třídy:
innerObject.display();
Výsledkem bude zpráva "vnitřní třída".
Všimněte si, že objekt vnitřní třídy je vytvořen pomocí objektu vnější třídy. Je to proto, že vnitřní třída má přístup ke všem členům vnější třídy a předpokládá se, že je bude používat při své práci.
Příklady použití interní třídy v Javě
Zvažte příklad použití interní třídy v Javě:
public class OuterClass public class InnerClass >>public class Main >
V tomto příkladu máme dvě třídy: OuterClass a InnerClass. Vnitřní třída InnerClass je deklarována uvnitř vnější třídy OuterClass. V metodě outerMethod () vnější třídy vytvoříme objekt InnerClass a vyvoláme jeho metodu innerMethod(). V metodě innerMethod () máme přístup k poli vnější třídy outerData a můžeme jej upravit a použít.
Použití interní třídy umožňuje logickou komunikaci mezi třídami a zlepšuje strukturu kódu. Může také poskytnout skrytí podrobností o implementaci a ochranu před neoprávněným přístupem ke členům třídy.
Výhody a nevýhody používání interních tříd
Vnitřní třídy poskytují možnost vytvářet objekty, které jsou plně propojeny s vnější třídou. To umožňuje logicky seskupovat třídy a zlepšit organizaci kódu. Použití interních tříd má však své klady a zápory, které je třeba vzít v úvahu při vývoji softwaru.
Výhody používání interních tříd:
- Zlepšení zapouzdření: vnitřní třída má přístup k členům vnější třídy, včetně soukromých polí a metod. To umožňuje vytvářet třídy, které lze zcela zapouzdřit uvnitř jiné třídy.
- Zlepšení čitelnosti kódu: použití interních tříd umožňuje umístit propojený kód na jedno místo a zlepšit jeho čitelnost a srozumitelnost.
- Zjednodušení kódu: interní třídy lze použít k implementaci složité logiky, což zjednodušuje kód externí třídy a činí jej modulárnějším.
- Možnost vytvořit více objektů vnitřní třídy: v případě potřeby lze vytvořit více objektů vnitřní třídy, každý se svým stavem a chováním.
Nevýhody používání interních tříd:
- Komplikace struktury kódu: použití interních tříd může způsobit komplikaci struktury kódu a zhoršení jeho čitelnosti, zejména při použití více úrovní Interních tříd.
- Možnost vytvoření izolovaných tříd: použití interních tříd je spojuje s vnější třídou, což znemožňuje jejich použití v jiných kontextech bez vytvoření instance externí třídy.
- Zvětšení velikosti kompilovaného souboru: interní třídy přidávají svůj kód do kompilovaného souboru spolu s externí třídou, což může vést ke zvýšení jeho velikosti.
Navzdory některým nedostatkům však může být použití interních tříd užitečným nástrojem pro organizaci kódu a zlepšení jeho čitelnosti a modularity.