Klasa wewnętrzna w Javie | Wyjaśnione

Klasa wewnętrzna w Javie | Wyjaśnione

Java zapewnia funkcję, która pozwala nam utworzyć klasę w innej klasie znanej jako klasa zagnieżdżona lub klasa wewnętrzna, a klasa posiadająca klasę wewnętrzną jest określana jako klasa zewnętrzna. Klasa wewnętrzna można określić w taki sam sposób, jak określamy dowolny inny atrybut lub metoda klasy.

W Javie nie możemy zadeklarować/utworzyć klasę za pomocą modyfikatora dostępu prywatny Aby do klasy można uzyskać w dowolnej innej klasie od wewnątrz lub na zewnątrz pakietu. Jednak, aby zapewnić bezpieczeństwo, musimy tworzyć prywatne zajęcia i aby to zrobić, możemy tworzyć wewnętrzne klasy z prywatny Modyfikatory dostępu.

Ten zapis zapewni kompleksowy przewodnik dla klas wewnętrznych w Javie i pod tym względem musimy zrozumieć następujące pojęcia:

  • Co to jest klasa wewnętrzna w Javie
  • Podstawowa składnia klasy wewnętrznej w Javie
  • Jak tworzyć i uzyskać dostęp do klasy wewnętrznej w Javie
  • Jak uzyskać dostęp do atrybutów/metod klasy zewnętrznej
  • Prywatna klasa wewnętrzna w Javie
  • Statyczna klasa wewnętrzna w Javie

Zacznijmy!

Co to jest klasa wewnętrzna w Javie

Klasa zadeklarowana/tworzona w niektórych innych klasach jest znana jako klasa wewnętrzna. Może uzyskać dostęp do wszystkich atrybutów klas i funkcji członków klasy zewnętrznej. Podstawowe cechy klas wewnętrznych obejmują zwiększone bezpieczeństwo, czytelność kodu i zachowanie.

Składnia

Podstawowa składnia klasy wewnętrznej jest opisana w fragmencie poniżej podanego:

klasa zewnętrzna klasa
//Sprawozdania
klasa wewnętrzna
//Sprawozdania

Jak tworzyć i uzyskać dostęp do klasy wewnętrznej w Javie

Tworzenie klasy wewnętrznej jest bardzo proste, wszystko, co musimy zrobić, to stworzyć klasę w klasie. Aby uzyskać dostęp do klasy wewnętrznej, najpierw musimy utworzyć instancję/obiekt klasy zewnętrznej, a następnie możemy utworzyć obiekt klasy wewnętrznej/zagnieżdżonej.

Przykład

Powyższy fragment pokazuje, jak działa klasa wewnętrzna w Javie.

Jak uzyskać dostęp do atrybutów/metod klasy zewnętrznej

Klasa wewnętrzna może uzyskać dostęp do atrybutów klasy lub funkcji członka klasy zewnętrznej, następujący przykład zapewni lepsze zrozumienie:

Przykład

Poniżej uzyskany kod kodowy dostęp do Nazwa 1 Atrybut klasy zewnętrznej z klasy wewnętrznej:

klasa zewnętrzna
String name1 = "John";
klasa wewnętrzna
Nazwa ciągów publicznych ()
Nazwa powrotu1;



klasa publiczna mainClass
public static void main (string [] args)
Zewnętrzny obj1 = nowy zewnętrzny ();
Zewnętrzny.Wewnętrzny obj2 = obj1.nowy wewnętrzny ();
System.na zewnątrz.println (obj2.nazwa());

Kompletny kod i jego wyjście są pokazane na poniższym fragmencie:

Wyjście uwierzytelnia, że ​​klasa wewnętrzna z powodzeniem uzyskuje dostęp do atrybutu klasowego klasy zewnętrznej.

Prywatna klasa wewnętrzna w Javie

W Javie zwykła klasa nie może być utworzona za pomocą prywatny Jednak modyfikator dostępu można jednak utworzyć klasę wewnętrzną z prywatnym dostępem, a obiekty poza klasą nie mogą uzyskać dostępu do prywatnej klasy wewnętrznej.

Przykład

Jeśli ktoś próbuje uzyskać dostęp do prywatnej klasy wewnętrznej, Java rzuci błąd:

klasa zewnętrzna
String name1 = "John";
klasa prywatna wewnętrzna
String name2 = „Micheal”;


klasa publiczna mainClass
public static void main (string [] args)
Zewnętrzny obj1 = nowy zewnętrzny ();
Zewnętrzny.Wewnętrzny obj2 = obj1.nowy wewnętrzny ();
System.na zewnątrz.println (obj2.name2 + "" + obj1.name1);

Cały kod jest taki sam, z wyjątkiem modyfikatora dostępu do klasy wewnętrznej:

Powyższy fragment sprawdza, czy klasa zewnętrzna nie jest w stanie uzyskać dostępu do klasy wewnętrznej.

Statyczna klasa wewnętrzna w Javie

Klasa wewnętrzna można również utworzyć za pomocą statycznego modyfikatora dostępu, a korzyścią z statycznej klasy wewnętrznej jest to, że nie ma potrzeby tworzenia obiektu zewnętrzny klasa do tworzenia obiektu Statyczna klasa wewnętrzna.

Instancję/obiekt klasy statycznej można utworzyć za pomocą następującej składni:

Klasa zewnętrzna.Wewnętrzna klasa obj = nowa klasa zewnętrzna.Innerclass ();

Przykład

klasa zewnętrzna
String name1 = "John";
klasa statyczna wewnętrzna
String name2 = „Micheal”;


klasa publiczna mainClass
public static void main (string [] args)
Zewnętrzny.Wewnętrzny obj2 = nowy zewnętrzny.Wewnętrzny();
System.na zewnątrz.println (obj2.name2);

Pełny kod i odpowiednie wyjście będą tak:

A statyczny Klasa wewnętrzna nie jest w stanie uzyskać dostępu do atrybutów klasy lub metod klasy zewnętrznej:

Powyższy fragment kodu weryfikuje, że statyczna klasa wewnętrzna nie może uzyskać dostępu do członka klasy zewnętrznej.

Wniosek

W Javie klasa może być utworzona w innej klasie określonej jako klasa wewnętrzna i aby utworzyć klasę wewnętrzną Najpierw musimy utworzyć instancję/obiekt klasy zewnętrznej, a następnie możemy utworzyć obiekt klasy wewnętrznej. A prywatna klasa wewnętrzna można również utworzyć w Javie i nie można go uzyskać z klasy zewnętrznej. Ponadto w Statyczna klasa wewnętrzna, nie ma potrzeby tworzenia obiektu zewnętrzny klasa, aby uzyskać dostęp do wewnętrznej klasy statycznej i nie może uzyskać dostępu do członków klasy zewnętrznej klasy.