Anonyme Klassen in Java sind unbenannte Klassen, ideal zum Definieren und Instanziieren von Implementierungen von Klassen oder Schnittstellen in-place, ohne dass zusätzliche Dateien erforderlich sind. Da es nur für den einmaligen Gebrauch bestimmt ist, ist eine Wiederverwendung nicht möglich. Im Gegensatz zu lokalen Klassen (Deklarationen) sind anonyme Ausdrücke, die ein einzelnes Objekt generieren, das einer Variablen zugewiesen werden kann.
Sie sind besonders nützlich, wenn eine Klasse nur einmal verwendet wird, beispielsweise beim Definieren einer bestimmten Methode einer Schnittstelle oder einer abstrakten Klasse. Seine Anwendung kommt häufig in Java Swing mit event listeners
oder Lambda-Funktionen (Pfeilfunktionen) vor.
Es ist eine merkwürdige Tatsache, dass der Java-Compiler ihnen automatisch einen Namen zuweist (z. B. ClaseContenedora.class
), der aus dem Namen der enthaltenden Klasse und einer Zahl besteht, die ihre Position angibt.
Syntax:
Da es sich um einen Ausdruck handelt, ähnelt seine Syntax dem Aufruf eines Konstruktors, enthält jedoch stattdessen einen Codeblock, der die Struktur der Klasse definiert:
ClaseOInterfaz nombreVariable = new ClaseOInterfaz() { // Cuerpo de la clase anónima };
Die Schlüsselkomponenten sind:
- Der Operator
new
. - Der Name der zu erweiternden Klasse oder der zu implementierenden Schnittstelle.
- Klammern mit den Konstruktorargumenten (falls vorhanden), genau wie beim Instanziieren einer normalen Klasse. In Schnittstellen sind Klammern leer.
- Schlüssel, die den Hauptteil der Klasse sperren.
- Es wird in einer einzigen Zeile deklariert und instanziiert und in einer Variablen gespeichert.
Arten anonymer Kurse:
- Erweiterung einer Klasse.
- Erweiterung einer abstrakten Klasse.
- Implementierung einer Schnittstelle.
- Argument einer Methode.
Beispiele:
1. Erweiterung einer Klasse:
public class Carro { public void tipoMotor() { System.out.println("Motor de combustión interna"); } } public class Main { public static void main(String[] args) { Carro carroCombustion = new Carro(); Carro carroElectrico = new Carro() { @Override public void tipoMotor() { System.out.println("Motor eléctrico"); } }; carroCombustion.tipoMotor(); // Motor de combustión interna carroElectrico.tipoMotor(); // Motor eléctrico } }
2. Erweiterung einer abstrakten Klasse:
public abstract class ConexionBD { public abstract void obtenerConexion(); } public class Main { public static void main(String[] args) { ConexionBD conexionMySQL = new ConexionBD() { @Override public void obtenerConexion() { System.out.println("Conexión a MySQL"); } }; ConexionBD conexionPostgreSQL = new ConexionBD() { @Override public void obtenerConexion() { System.out.println("Conexión a PostgreSQL"); } }; conexionMySQL.obtenerConexion(); // Conexión a MySQL conexionPostgreSQL.obtenerConexion(); // Conexión a PostgreSQL } }
3. Implementierung einer Schnittstelle:
import java.util.Arrays; import java.util.Comparator; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numeros = Arrays.asList(5, 10, 56, 3, 2, 1, 0); numeros.sort(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2 - o1; } }); System.out.println(numeros); // [56, 10, 5, 3, 2, 1, 0] } }
4. Argument einer Methode:
public class Main { public static void main(String[] args) { Thread hilo = new Thread(new Runnable() { @Override public void run() { while (true) { System.out.println("Hola, soy un hilo"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }); hilo.start(); } }
Vorteile:
- Erstellung von Objekten nur dann, wenn sie benötigt werden.
- Ändern des Verhaltens von Klassen oder Schnittstellen ohne Unterklassen.
- Prägnanterer und lesbarerer Code.
- Zeitersparnis durch Vermeidung zusätzlicher Dateien.
Geltungsbereich:
Ähnlich wie bei normalen Klassen, mit Zugriff auf lokale Variablen des Containerbereichs, mit den Einschränkungen, dass keine statischen Initialisierer oder Schnittstellen deklariert werden können, und der Einschränkung des Zugriffs auf nicht endgültige oder effektiv endgültige lokale Variablen.
Fazit:
Anonyme Klassen sind ein leistungsstarkes und vielseitiges Werkzeug in Java, das für einzigartige und prägnante Implementierungen nützlich ist. Seine Verwendung, auch wenn sie manchmal implizit ist, vereinfacht den Code und verbessert die Effizienz. Weitere Informationen finden Sie in der offiziellen Java-Dokumentation.
Das obige ist der detaillierte Inhalt vonAnonyme Klassen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Java wird hauptsächlich zum Erstellen von Desktop-Anwendungen, mobilen Anwendungen, Lösungen auf Unternehmensebene und Big-Data-Verarbeitung verwendet. 1. Anwendungen auf Unternehmensebene: Unterstützen Sie komplexe Anwendungen wie Bankensysteme über Javaee. 2. Webentwicklung: Verwenden Sie Spring und Hibernate, um die Entwicklung zu vereinfachen, und Springboot baut schnell Microservices auf. 3.. Mobile Anwendungen: immer noch eine der Hauptsprachen für die Entwicklung von Android. 4. Big Data Processing: Hadoop- und Funkenprozess massive Daten basierend auf Java. 5. Spielentwicklung: Geeignet für kleine und mittelgroße Spieleentwicklung wie Minecraft.

Wie setze ich Java -Entwicklungstools auf die chinesische Schnittstelle? Es kann in folgenden Schritten implementiert werden: Eclipse: Fenster-> Einstellungen-> Allgemein-> Aussehen-> I18NSupport-> Sprach-> Chinesisch (vereinfacht) und dann die Eclipse neu starten. IntelliJidea: Help-> findAction-> Geben

Normalerweise dauert es 6 bis 12 Monate, um Java zu lernen und das Arbeitsniveau zu erreichen, und es kann für diejenigen mit einer Programmierfundament auf 3 bis 6 Monate verkürzt werden. 1) Lernende mit Zero Foundation müssen die Grundlagen und die häufig verwendeten Bibliotheken für 6-12 Monate beherrschen. 2) Personen mit Programmierfundament können es innerhalb von 3-6 Monaten beherrschen. 3) Nach 9 bis 18 Monaten Beschäftigung können tatsächliche Projekte und Praktika den Prozess beschleunigen.

In Java wird der neue Operator verwendet, um ein Objekt zu erstellen, und seine Prozesse umfassen: 1) Zuordnen des Raums im Heap -Speicher, 2) Initialisierung des Objekts, 3) Aufrufen des Konstruktors und 4) die Rückgabe der Objektreferenz. Das Verständnis dieser Schritte kann dazu beitragen, die Speicherverwendung zu optimieren und die Anwendungsleistung zu verbessern.

Die Syntax zum Definieren eines Array in Java lautet: 1. Datentyp [] Array name = neuer Datentyp [Array -Länge]; 2. Datentyp -Array -Name [] = neuer Datentyp [Array -Länge]; 3. Datentyp [] Array name = {Elementliste}; Array ist ein Objekt, kann null sein, und das Index startet ab 0. Bei der Verwendung müssen Sie auf potenzielle Fehler wie NullPointerexception und ArrayIndexoutOfBoundSexception achten.

Das neue Schlüsselwort wird in Java verwendet, um Objektinstanzen zu erstellen. 1) Es wird dem JVM angegeben, Speicher zuzuweisen und den Konstruktor aufzurufen, um das Objekt zu initialisieren. 2) Verwenden Sie Neue, um neue Objekte zum Erstellen zu zwingen, auch wenn der Inhalt gleich ist. 3) Der Konstruktor ermöglicht eine benutzerdefinierte Initialisierung. 4) Häufige Verwendung neuer Verwendung kann zu Leistungsproblemen und Speicherlecks führen. 5) Es ist erforderlich, Try-Catch zu verwenden, um mögliche Ausnahmen zu verarbeiten. 6) Anonyme interne Klassen sind eine fortgeschrittene Verwendung von neu.

Um das Problem der in Java verstümmelten Chinesen zu lösen, können Sie die folgenden Schritte verwenden: 1. Legen Sie die korrekte Zeichenkodierung wie UTF-8 oder GBK fest, um sicherzustellen, dass die Datei-, Datenbank- und Netzwerkkommunikation dieselbe Codierung verwendet. 2. Verwenden Sie Javas Charaktercodierungskonvertierungsklasse, um die notwendige Codierungskonvertierung durchzuführen. 3. Überprüfen Sie, ob die Codierung durch Debugging -Tools und -protokolle korrekt ist, um sicherzustellen, dass die chinesische Anzeige in verschiedenen Umgebungen normal ist.

Ausnahmen in Java werden in überprüfte Ausnahmen und nicht überprüfte Ausnahmen unterteilt. Ausnahmen vom Typ Check-Typ müssen explizit behandelt werden. Andernfalls meldet der Compiler einen Fehler, der häufig zur Wiederherstellung von Fehlern verwendet wird, z. B. eine nicht gefundene Datei. Nicht überprüfte Ausnahmen müssen nicht explizit behandelt werden und werden häufig für Programmierfehler verwendet, wie z. B. eine Null-Zeiger-Ausnahme.


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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Dreamweaver CS6
Visuelle Webentwicklungstools

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung
