Klasa wewnętrzna w Javie oznacza jedną klasę, która jest członkiem innej klasy. W istnieją różne typy klas wewnętrznych. Ten artykuł pomoże ci rozwikłać wszystkie te zajęcia. Następujące wskazówki zostaną szczegółowo omówione,
- Zagnieżdżona klasa wewnętrzna
- Metoda Lokalne klasy wewnętrzne
- Anonimowe klasy wewnętrzne
- Statyczne klasy zagnieżdżone
Zacznijmy więc od tego artykułu o klasie wewnętrznej w Javie,
Klasa wewnętrzna w Javie
Zagnieżdżona klasa wewnętrzna
Ta klasa ma dostęp do dowolnej wartości wystąpienia prywatnego klasy zewnętrznej. Pisanie jednej klasy w innej klasie jest również dozwolone w Javie. Klasa zapisana w ramach jest znana jako klasa zagnieżdżona, a klasa, która zawiera klasę wewnętrzną, jest znana jako klasa zewnętrzna.
Składnia
class outsideplace {class innerplace {}}
Przykład
tablica obiektów w java
W poniższym przykładzie robimy wewnętrzną klasę prywatną i uzyskujemy dostęp do klasy za pomocą metody.
class Outer_place {int num private class Inner_place {public void print () {System.out.println ('To jest klasa wewnętrzna')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} public class My_class {public static void main (String args []) {Outer_place external = new Outer_place () external.display_Inner ()}}
Wynik
Tutaj, zewnętrzne miejsce jest klasą zewnętrzną, a miejsce wewnętrzne nazywa się klasą wewnętrzną.
Przechodząc do tego artykułu o klasie wewnętrznej w Javie,
Dostęp do prywatnych członków
Klasy wewnętrzne są również używane do uzyskiwania dostępu do prywatnych członków klasy. Załóżmy, że istnieje klasa mająca prywatnych członków, którzy mają do nich dostęp. Teraz napisz klasę wewnętrzną w klasie i uzyskaj dostęp do prywatnych elementów członkowskich z metody w klasie wewnętrznej.
Oto przykład,
class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('Jest to metoda getnum klasy wewnętrznej:') return num}}} public class My_class {public static void main (String args []) {Outer_place external = new Outer_place () Outer_place.Inner_place inner = external.new Inner_place () System.out.println (inner.getNum ())}}
Wynik
Iść dalej,
Metoda lokalnych klas wewnętrznych
W Javie możesz napisać klasę w metodzie, która będzie znana jako typ lokalny. Podobnie jak wszystkie zmienne lokalne, zakres klasy wewnętrznej jest ograniczony w ramach metody.
Przykład
Poniższy przykład pokaże, jak zaimplementowano lokalną klasę wewnętrzną metody.
public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('metoda dla klas wewnętrznych' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace external = new Outerplace () external.my_Method ()}}
Wynik
Przechodząc do tego artykułu o klasie wewnętrznej w Javie,
Anonimowa klasa wewnętrzna
Każda klasa wewnętrzna zadeklarowana bez nazwy klasy nazywana jest anonimową klasą wewnętrzną. W przypadku anonimowych klas wewnętrznych tworzymy instancję i deklarujemy ją w tym samym czasie.
Zawsze, gdy chcemy przesłonić metodę klasy lub interfejsu, używamy tej klasy.
Składnia
AnonymousInner obj1 = new AnonymousInner () {public void method () {}}
Przykład
klasa abstrakcyjna AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('przykład anonimowego wewnętrzna klasa ')}} inner.mymethod ()}}
Wynik
Przechodząc do tego artykułu o klasie wewnętrznej w Javie,
Jako argument anonimowej klasy wewnętrznej
W tym przypadku, jeśli metoda przyjmuje obiekt interfejsu, klasy abstrakcyjnej lub klasy konkretnej, to jesteśmy w stanie zaimplementować interfejs, przekazać obiekt do metody i rozszerzyć klasę abstrakcyjną.
Składnia
ciąg do tej pory w java
obj. metoda (nowa klasa () {public void do {}})
Przykład
// interfejs interfejsu Message {String greet ()} public class My_class {// obiekt komunikatu interfejsu jest akceptowany przez tę metodę public void displayMessage (Message m) {System.out.println (m.greet () + ', przykład anonimowa klasa wewnętrzna jako argument ')} public static void main (String args []) {// Tworzenie wystąpienia klasy My_class obj = new My_class () // Przekazanie anonimowej klasy wewnętrznej jako argumentu obj.displayMessage (new Message () {public String witaj () {return 'Hej'}})}}
Wynik
Przechodząc do tego artykułu o klasie wewnętrznej w Javie,
Anonimowa klasa wewnętrzna określonej podklasy
Kod źródłowy
class Demo {void show () {System.out.println ('Byłem w metodzie pokazu klasy')}} class Flavor1Demo {Demo statyczne d = nowe Demo () {void show () {super.show () System. out.println ('i był obecny w klasie Flavor1Demo')}} public static void main (String [] args) {d.show ()}}
Wynik
Przechodząc do tego artykułu o klasie wewnętrznej w Javie,
Anonimowa klasa wewnętrzna jako implementujący określony Berło
Kod źródłowy
class Flavor2Demo {// klasa implementująca interfejs Hello statyczna Hello h = new Hello () {public void show () {System.out.println ('I was present in anonymous class')}} public static void main (String [] args) {h.show ()}} interfejs Witaj {void show ()}
Wynik
Przechodząc do tego artykułu o klasie wewnętrznej w Javie,
Statyczne klasy zagnieżdżone
Te klasy nie są technicznie znane jako klasy wewnętrzne. Te klasy są podobne do statycznego elementu członkowskiego klasy zewnętrznej. Statyczna klasa zagnieżdżona nie ma dostępu do zmiennych i metod klasy zewnętrznej. Nie musimy tworzyć instancji klasy zewnętrznej, można uzyskać do niej bezpośredni dostęp za pomocą statycznych elementów członkowskich.
java konwertuje podwójną na liczbę całkowitą
Składnia
Klasa zewnętrzna {Static class nested_example {}}
Przykład
public class Outer {static class Nested_Example {public void my_method () {System.out.println ('To jest klasa zagnieżdżona')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}
Wynik
W ten sposób doszliśmy do końca tego artykułu. Jeśli chcesz dowiedzieć się więcej,Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online. Szkolenie i certyfikacja J2EE i SOA firmy Edureka ma na celu 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 w tym artykule, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.