Jak zaimplementować zagnieżdżoną klasę w Javie?



Ten artykuł o klasach zagnieżdżonych w Javie pomoże ci zrozumieć, jak zaimplementować klasy zagnieżdżone przy pomocy przykładowego programu.

W Javie klasę można zdefiniować w innej klasie, a takie klasy są nazywane klasami zagnieżdżonymi. Te klasy pomagają logicznie grupować klasy, które są używane tylko w jednym miejscu. Zwiększa to użycie hermetyzacji i tworzy bardziej czytelny i łatwiejszy w utrzymaniu kod. Ten blog o „Zagnieżdżonych klasach w Javie” zawiera szybkie wprowadzenie do zagnieżdżonych klas w . Poniżej znajdują się tematy poruszane na tym blogu:

Zagnieżdżona klasa w Javie

Plik klasa zapisana w klasie nazywana jest klasą zagnieżdżoną, podczas gdy klasa, która zawiera klasę wewnętrzną, nazywana jest klasą zewnętrzną. Poniżej znajduje się kilka punktów, o których należy pamiętać w przypadku klas zagnieżdżonych w Javie -





pojo w java z przykładem
  • Zakres klasy zagnieżdżonej jest ograniczony przez otaczającą ją klasę.
  • Klasa zagnieżdżona ma dostęp do elementów członkowskich klasy, w której jest zagnieżdżona. Ale klasa otaczająca nie może uzyskać dostępu do elementów członkowskich klasy zagnieżdżonej.
  • Klasa zagnieżdżona to otaczający ją element członkowski klasy.
  • Zagnieżdżoną klasę można zadeklarować jako publiczną, prywatną, chronioną lub pakietowo-prywatną.

Typy klas zagnieżdżonych

Wewnętrzna / niestatyczna klasa zagnieżdżona: W Javie klasy niestatyczne są mechanizmem bezpieczeństwa. Nie można skojarzyć klasy z dostęp do edycji private, ale jeśli masz klasę jako element członkowski innej klasy, wówczas klasa niestatyczna może zostać ustawiona jako prywatna.

Rodzaje klas wewnętrznych i minus



  • Klasa wewnętrzna
  • Metoda - lokalna klasa wewnętrzna
  • Anonimowa klasa wewnętrzna

Klasa wewnętrzna

Aby utworzyć klasę wewnętrzną, wystarczy napisać klasę w klasie. Klasa wewnętrzna może być prywatna, do której nie można uzyskać dostępu z pliku obiekt poza klasą. Poniżej znajduje się program do tworzenia klasy wewnętrznej. W tym przykładzie klasa wewnętrzna jest prywatna i można do niej uzyskać dostęp za pomocą metody.

class Outer_Test {int num // internal class private class Inner_Test {public void print () {System.out.println ('To jest nasza klasa wewnętrzna')}} // Dostęp do klasy wewnętrznej z metody void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// Tworzenie wystąpienia klasy zewnętrznej Outer_Test external = new Outer_Test () // Dostęp do metody display_Inner () . external.display_Inner ()}}

Wynik
Klasa zagnieżdżona wewnętrzna - Edureka

Metoda - lokalna klasa wewnętrzna

W Javie klasę można zapisać w pliku i jest to typ lokalny. Podobnie jak w przypadku zmiennych lokalnych, zakres klasy wewnętrznej jest ograniczony w ramach metody. Klasa wewnętrzna lokalna metody jest włączana tylko w ramach metody, w której zdefiniowano klasę wewnętrzną. Poniższy program pokazuje, jak używać lokalnej klasy wewnętrznej metody.



public class Outerclass {// metoda instancji klasy zewnętrznej void my_Method () {int num = 1001 // metoda lokalna klasa wewnętrzna StarInner_Test {public void print () {System.out.println ('To jest wewnętrzna klasa gwiazdy' + num)}} // koniec klasy wewnętrznej // Dostęp do klasy wewnętrznej StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () external. my_Method ()}}

Wynik

Anonimowa klasa wewnętrzna

Anonimowa klasa wewnętrzna to klasa wewnętrzna zadeklarowana bez nazwy klasy. W anonimowej klasie wewnętrznej deklarujemy ją i tworzymy w tym samym czasie. Są zwykle używane, gdy trzeba przesłonić metodę klasy lub interfejsu. Poniższy program pokazuje, jak używać anonimowej klasy wewnętrznej -

klasa abstrakcyjna AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('To jest przykład anonimowej klasy testu wewnętrznego ')}} inner.mytest ()}}

Wynik-

Statyczna klasa zagnieżdżona: DO jest klasą zagnieżdżoną, która jest statycznym składnikiem klasy zewnętrznej. W przeciwieństwie do klasy wewnętrznej statyczna klasa zagnieżdżona nie może uzyskać dostępu do zmiennych składowych klasy zewnętrznej, ponieważ statyczna klasa zagnieżdżona nie wymaga wystąpienia klasy zewnętrznej. W związku z tym nie ma odniesienia do klasy zewnętrznej z OuterClass.this. Składnia statycznej klasy zagnieżdżonej to -

class MyOuter {static class Nested_Test {}}

Przykład statycznej klasy zagnieżdżonej

public class Outer {static class Nested_Test {public void my_method () {System.out.println ('To jest zagnieżdżona klasa testowa Edureki')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

Wynik

jak przycinać w java

Różnica między statycznymi i niestatycznymi klasami zagnieżdżonymi

Statyczne klasy zagnieżdżone nie mają bezpośredniego dostępu do innych członków otaczającej klasy. Będąc statycznym, musi uzyskać dostęp do niestatycznych składowych swojej klasy otaczającej za pośrednictwem obiektu, co oznacza, że ​​nie może bezpośrednio odwoływać się do niestatycznych składowych swojej klasy otaczającej. Z powodu tego ograniczenia statyczne klasy zagnieżdżone są rzadko używane.

Niestatyczne klasy zagnieżdżone mają dostęp do wszystkich elementów członkowskich swojej klasy zewnętrznej i mogą odwoływać się do nich bezpośrednio w taki sam sposób, jak robią to inne niestatyczne elementy członkowskie klasy zewnętrznej.

Zanim przejdziemy do końca tego artykułu, spójrzmy na kilka kluczowych punktów.

Kluczowe kwestie do zapamiętania

  • Klasa wewnętrzna jest traktowana jako zwykły element członkowski klasy.
  • Ponieważ klasa wewnętrzna jest członkami klasy zewnętrznej, możesz zastosować różne modyfikatory dostępu, takie jak protected, private do swojej wewnętrznej klasy.
  • Ponieważ klasa zagnieżdżona jest członkiem swojej klasy otaczającej, możesz użyć. (kropka), aby uzyskać dostęp do zagnieżdżonej klasy i jej elementów członkowskich.
  • Użycie klasy zagnieżdżonej sprawia, że ​​kod jest bardziej czytelny i zapewnia lepszy kapsułkowanie .
  • Klasa wewnętrzna ma dostęp do innych członków klasy zewnętrznej, nawet jeśli są zadeklarowane jako prywatne.

Tym samym kończymy blog poświęcony klasom zagnieżdżonym w Javie. Jeśli chcesz dowiedzieć się więcej o Javie, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego bloga „Zagnieżdżona klasa w Javie”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.