Java generische rekursive Typen

February 27

Die Programmiersprache Java verwendet Klassen und Objekte, Programmierern, mit Daten zu arbeiten. Wie C++ Java ermöglicht es auch Benutzern, Klassen zu definieren, mit denen mehrere Datentypen, um die Flexibilität und den Nutzen ihrer erstellten Objekte erweitern können. Indem man diese Vorstellung von flexiblen Daten geben Sie Einsatz, genannt "Generika" und ein rekursives Element anwenden, können Programmierer sicherstellen, dass Benutzer von Objekten nur bestimmte Arten von Daten beschäftigen, so dass das generische Objekt funktioniert wie vorgesehen ermöglicht Benutzern die Verwendung dieses Objekts zu erweitern.

Klassen und Typen

Java funktioniert überwiegend als eine objektorientierte Programmiersprache. Dies bedeutet, dass Programmierer "Klassen" verwenden, um bestimmte "Typen" von Daten zu definieren. Klassen verwenden auch andere Arten von Daten in ihrer Definition. Im folgenden Code z. B. Klasse Box verwendet drei ganzen Zahlen als Teil ihrer Definition: damit die Klasse Funktion für andere Programmierer, sie haben diese Definition durch Angabe von drei ganzen Zahlen zu folgen. So bleibt die Wirksamkeit der Klasse Box:

Klasse Box {}

readBytes;Int Breite;Int Höhe;

öffentliche Box (Int l, Int w, Int h) {//Box müssen verwenden GanzzahlenreadBytes = l;Int height = w;Int-Höhe = h;}}

Generische Typen

Einige Programmierer mag diese Einschränkung jedoch nicht. Einige könnten Datenstrukturen, z. B. entwickeln, die erfordern, dass der Benutzer der Datenstruktur beliebigen Datentyps innerhalb der Struktur verwenden dürfen. In diesem Fall kann der Programmierer eine "generische" Klasse erstellen, die einen bestimmten Datentyp akzeptiert. Also, wie im folgenden Codebeispiel kann Klasse Box jetzt jeder Typ "T" zur Darstellung seiner Seiten nehmen. Dies ist besonders nützlich, wenn der Benutzer entweder ganze Zahlen oder Dezimalzahlen verwenden, um die Seiten darstellen möchten:

Klasse Box < T > {}

T-Länge;T Breite;T-Höhe;

öffentliche Box (T-l, T w, T h) {//Box nun type verwendet TreadBytes = l;Int height = w;Int-Höhe = h;}}

Generische rekursive Typen

Um generische Typen zu komplizieren, könnte einige Programmierer mit den Regeln des erlaubten als generischer Typ für eine Klasse spielen. Beispielsweise könnte anstatt eines allgemeinen Datentyps "T", der Programmierer eine Klasse erstellen, die den gleichen Typ wie die Klasse dauert, bis es als der generische Typ dient. Das folgende Beispiel veranschaulicht dies: anstelle des Typs T, der Klasse verwendet der generischen Typ T, die eine Version darstellt, oder "erbt" von, Klasse Box:

Klasse Box < T erweitert Box < T >> {}

Im Feld < T > Länge;< T > Breite;Kastenhöhe < T >;

öffentliche Box (Box < T > l, Box < T > w, Box < T > h) {//Box nun type verwendet Box < T >readBytes = l;Int height = w;Int-Höhe = h;}}

Nützlichkeit der rekursive Typen

In der Praxis scheint dies verwirrend und kontraproduktiv. Aber eigentlich stellt es eine versierte Möglichkeit für den Ersteller der Klasse, die Verwendung bestimmter Typ erzwingen. In diesem Fall verwendet der Benutzer der Klasse Typ "Box" mit generischen Typ "T" als generischer Typ für sich. Dies bedeutet, dass ein Benutzer, der ein Objekt des Typs "Box < T >" erstellt gezwungen ist, den gleichen Typ (Box < T >) als der generische Typ anstatt eine ganze Zahl, Dezimal oder etwas anderes verwenden. Dies ermöglicht die Programmierer, um sicherzustellen, dass bestimmte Verhalten tritt auf, wenn Benutzer mit Klassen interagieren, die sie schaffen.