Innere Klassen in Java (grundlegend)
Klassifizierung interner Klassen: reguläre interne Klassen, statische interne Klassen, private interne Klassen, lokale interne Klassen und anonyme interne Klassen.
Beispiel 1: Regelmäßige innere Klasse
//外部类 class Out { private int age = 12; //内部类 class In { public void print() { System.out.println(age); } } } public class Demo { public static void main(String[] args) { Out.In in = new Out().new In(); in.print(); //或者采用下种方式访问 /* Out out = new Out(); Out.In in = out.new In(); in.print(); */ } }
Laufergebnis: 12
Aus dem obigen Beispiel ist nicht schwer zu erkennen, dass die innere Die Klasse ist tatsächlich ernsthaft beschädigt. Gute Codestruktur, aber warum innere Klassen verwenden?
Da die innere Klasse die Mitgliedsvariablen der äußeren Klasse (einschließlich private) frei verwenden kann, ohne Objekte der äußeren Klasse zu generieren, ist dies der einzige Vorteil der inneren Klasse
Genau wie die Das Herz kann direkt auf das Blut des Körpers zugreifen, anstatt Blut über einen Arzt entnehmen zu müssen
Nachdem das Programm kompiliert wurde, werden zwei .class-Dateien generiert, nämlich Out.class und Out$ In.class
wobei $ Repräsentiert das in Out.In im obigen Programm
Out.In in = new Out().new In() kann zum Generieren von Objekten verwendet werden Innere Klassen. Es gibt zwei kleine Wissenspunkte in dieser Methode. Es sollte beachtet werden: 1. Das Out am Anfang dient dazu, anzugeben, welche externe Klasse das interne Klassenobjekt generiert werden muss 2. Es muss ein Objekt der externen Klasse vorhanden sein, bevor das Objekt der internen Klasse generiert werden kann, denn Die Funktion der inneren Klasse besteht darin, auf die Mitgliedsvariablen in der äußeren Klasse zuzugreifen
Beispiel 2: Variablenzugriffsformular in der inneren Klasse
Laufende Ergebnisse:
class Out { private int age = 12; class In { private int age = 13; public void print() { int age = 14; System.out.println("局部变量:" + age); System.out.println("内部类变量:" + this.age); System.out.println("外部类变量:" + Out.this.age); } } } public class Demo { public static void main(String[] args) { Out.In in = new Out().new In(); in.print(); } }
Lokale Variablen: 14Interne Klassenvariablen: 13 Externe Klassenvariablen: 12
Aus Beispiel 1 geht hervor, dass die innere Klasse keine gleichnamigen Mitgliedsvariablen hat. Bei lokalen Variablen greift die innere Klasse direkt auf die Mitgliedsvariablen der äußeren Klasse zu Klasse ohne Angabe von Out.this. Attributname
Andernfalls überschreiben die lokalen Variablen in der inneren Klasse die Mitgliedsvariablen der äußeren Klasse
Um auf die Mitgliedsvariablen der inneren Klasse selbst zuzugreifen, Sie können this.property name verwenden, und um auf die Mitgliedsvariablen der externen Klasse zuzugreifen, müssen Sie Out.this.property name verwenden
Beispiel 3: Statische innere Klasse
Laufergebnis:
12class Out { private static int age = 12; static class In { public void print() { System.out.println(age); } } } public class Demo { public static void main(String[] args) { Out.In in = new Out.In(); in.print(); } }
Sie können sehen, dass die innere Klasse nur auf die statischen Mitgliedsvariablen der äußeren Klasse zugreifen kann, wenn Sie statisch verwenden, um die innere Klasse statisch zu machen, was Einschränkungen unterliegtZweitens kann Out.In als Ganzes betrachtet werden, da die innere Klasse statisch ist, und Sie können direkt auf das Objekt der inneren Klasse zugreifen (über den Klassennamen auf statisch zugreifen, es spielt keine Rolle, ob die äußere Klasse vorhanden ist). Objekt generiert wird oder nicht)
Beispiel 4: Private innere Klasse
Laufendes Ergebnis:
12class Out { private int age = 12; private class In { public void print() { System.out.println(age); } } public void outPrint() { new In().print(); } } public class Demo { public static void main(String[] args) { //此方法无效 /* Out.In in = new Out().new In(); in.print(); */ Out out = new Out(); out.outPrint(); } }
Wenn eine innere Klasse nur möchte von Methoden in der äußeren Klasse betrieben werden, dann kann es verwendet werden, um interne Klassen mit privat zu deklarieren Im obigen Code müssen wir für den Betrieb Objekte der In-Klasse in der Out-Klasse generieren und können Out nicht mehr verwenden. In in = new Out().new In() zum Generieren eines internen Klassenobjekts
Das heißt, die innere Klasse kann zu diesem Zeitpunkt nur von der äußeren Klasse gesteuert werden
In ähnlicher Weise Mein Herz kann nur von meinem Körper gesteuert werden und andere können nicht direkt darauf zugreifen
Beispiel 5: Lokale innere Klasse
Laufergebnis:
class Out { private int age = 12; public void Print(final int x) { class In { public void inPrint() { System.out.println(x); System.out.println(age); } } new In().inPrint(); } } public class Demo { public static void main(String[] args) { Out out = new Out(); out.Print(3); } }
312
Im obigen Code haben wir die innere Klasse in die Methode der äußeren Klasse verschoben und dann in der Methode der äußeren Klasse ein inneres Klassenobjekt generiert, um die innere Klasse aufzurufen method
Wenn wir es zu diesem Zeitpunkt an die Methode der äußeren Klasse übergeben müssen, geben Sie Parameter ein, dann müssen die Methodenparameter der externen Klasse mit final definiert werden
Was final betrifft, dort hat hier keine besondere Bedeutung, es ist nur eine Ausdrucksform
Das obige ist der detaillierte Inhalt vonInnere Klassen in Java (grundlegend). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo
