Přejít na hlavní obsah

Jak vytvořit objekt interní třídy v Javě: podrobný průvodce

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.