1. Liste der Wrapper-Typen
Sie wissen, dass Java über 8 primitive Typen verfügt, bei denen es sich um Typen handelt, die keine Klassen sind. Das ist einerseits gut – sie sind einfach und nehmen wenig Platz ein. Andererseits sind Kurse manchmal genau das, was wir brauchen. Warum das genau so ist, erfahren Sie in der nächsten Lektion.
Was kann also getan werden?
Ab der fünften Java-Version erhielt jeder primitive Typ eine Zwillingsklasse. Jede dieser Klassen speichert ein einzelnes Feld mit einem Wert eines bestimmten Typs. Diese Klassen werden Wrapper-Typen genannt , da sie primitive Werte in Klassen einschließen.
Hier ist eine Liste dieser Typen. Kennst du irgendwelche?
Primitiver Typ | Wrapper-Klasse |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Die Namen primitiver Typen beginnen mit einem Kleinbuchstaben, die Namen der Wrapper-Klassen jedoch mit einem Großbuchstaben. Einige der Klassennamen sind auch etwas länger: Integer
statt int
und Character
statt char
.
Alle Objekte der Wrapper-Klassen sind unveränderlich ( immutable ).
Der vereinfachte Code für die Integer
Klasse sieht etwa so aus:
Code | Notiz |
---|---|
|
Variablenkonstruktor Die Methode gibt einen Wert zurück. Die statische Methode erstellt ein neues Objekt für eine Variable Integer int |
2. Konvertieren von an int
in anInteger
Wrapper-Typen gelten als Gegenstücke zu ihren primitiven Geschwistern: Sie können problemlos ein Wrapper-Objekt erstellen, das einem primitiven Typ entspricht.
Lassen Sie uns den Typ int als Beispiel verwenden, um zu analysieren, wie primitive Typen mit ihren entsprechenden Wrapper-Typen interagieren. Der Code zum Konvertieren von an int
in an Integer
und umgekehrt würde wie folgt aussehen:
Um ein int
in ein umzuwandeln Integer
, müssen Sie diesen Code schreiben:
Integer name = new Integer(value);
Wo name
ist der Name einer Integer
Variablen und value
der umschlossene int
Wert?
Beispiele:
Code | Notiz |
---|---|
|
|
|
|
|
Und um das an Integer
in ein umzuwandeln int
, müssen Sie diesen Code schreiben:
int name = variable.intValue();
Wobei name
ist der Name einer int
Variablen und variable
ein Verweis auf ein Integer
Objekt.
Beispiele:
Code | Notiz |
---|---|
|
|
|
|
|
|
|
|
3. Autoboxing und Unboxing
Aber selbst einfache Operationen mit dem Integer
Typ sind nicht einfach zu schreiben.
Wie bereits erwähnt, Integer
ist der Typ unveränderlich ( unveränderlich ). Um ein Integer
Objekt mit einem neuen int
Wert zu erstellen, müssen Sie explizit ein neues Integer
Objekt erstellen. int
Allerdings ist es einfach, den Wert eines in einem Objekt gespeicherten Objekts abzurufen Integer
– rufen Sie einfach die intValue()
Methode auf.
Beispiel:
Code | Beschreibung |
---|---|
|
5 Ein Integer Objekt einschließen Den Wert vom Integer Objekt abrufen Ein neues Integer Objekt erstellen (gleich 10) |
Das ist ein ziemlich umständlicher Code, finden Sie nicht?
Das dachten sich die Java-Entwickler und brachten dem Compiler bei, wie er diese Vorgänge automatisch ausführt. Die automatische Konvertierung von an int
in an Integer
wird als Autoboxing bezeichnet (das automatische Einfügen des Werts in eine Box), und der umgekehrte Vorgang (Konvertieren von an Integer
in an int
) wird als Unboxing bezeichnet .
Dein Code | Was der Compiler sieht |
---|---|
|
|
|
|
|
|
Dank Autoboxing und Unboxing können Sie int
einer Integer
Variablen sicher eine zuweisen und umgekehrt. int
Sie können Ausdrücke beliebiger Komplexität schreiben, ohne zwischen den Typen und zu unterscheiden Integer
.
Beispiele:
Code | Was der Compiler generiert |
---|---|
|
|
|
|
4. Vergleichen von Wrapper-Variablen
Autoboxing und Unboxing sind einfache und transparente Prozesse. Wir verwenden new Integer()
Anweisungen nach Bedarf und rufen die intValue()
Methode nach Bedarf auf.
Für Sie als Programmierer funktioniert alles gut und einfach. Denken Sie daran, dass beim Vergleich von an Integer
und Integer
an der Vergleich auf Referenzen und nicht auf Werten basiert.
Code | Konsolenausgabe |
---|---|
|
|
|
|
Die Variablen a
und b
speichern keine int
Werte. Sie speichern Verweise auf Objekte. Deshalb ist es wichtig, sich daran zu erinnern, wie man sie richtig vergleicht:
Falsch | Rechts |
---|---|
|
|
GO TO FULL VERSION