Kurzeinstieg Java: Wrapperklassen

Aus Wikibooks

Was sind Wrapperklassen?[Bearbeiten]

Wrapperklassen (das deutsche Wort "Hüllklasse" ist ungebräuchlich) sind Datentypen, die einen primitiven Datentyp aufnehmen, in einer Klasse packen und nützliche Methoden bereitstellen. Nutzt man Wrapperklassen, stehen einem alle Möglichkeiten objektorientierter Programmierung zur Verfügung (z. B. Vererbung), was die zugehörigen primitiven Datentypen nicht leisten.

Wie funktioniert das Ein- und Auspacken?[Bearbeiten]

public class Testklasse {

  public static void main(String[] args) {

      int iWert = 3;
      Integer iWrapper = iWert;     // Einpacken
      int iWert2 = iWrapper;        // Auspacken
      System.out.println(iWert + " " + iWrapper + " " + iWert2);

  }    
}

Dieses Beispiel funktioniert mit allen primitiven Datentypen auf die gleiche Weise, weswegen wir es nicht für jeden Datentyp duplizieren wollen. Die Umwandlung eines primitiven Typs in eine Klasse und umgekehrt ist eine Konvertierung, die man "autoboxing" beziehungsweise "unboxing" nennt. Anders als beim Casting haben die Datentypen keinen unterschiedlichen Wertebereich.

Welche nützlichen Methoden werden bereitgestellt?[Bearbeiten]

Schreib mit:

  • typische und nützliche Methoden der Wrapperklassen (ohne Mathe und Strings, beides kommt später)

WrapperKlassen haben den Nachteil, dass der Overhead beim instanziieren geringfügig höher ist, sie sind einige Bytes größer als der dazugehörige primitive Datentyp. Erstellt man größere Mengen, wirkt sich dies negativ auf die Geschwindigkeit und den benötigten Speicher eines Programmes aus.

Wrapper sind zum Beispiel erforderlich, um threadsichere primitive Datentypen zur Verfügung zu stellen.

Welche Vor- und Nachteile hat man durch Wrapperklassen?[Bearbeiten]

Schreib mit:

  • Vorteile von primitiven Datentypen (z. B. Geschwindigkeit -> Belege?)
  • Wo sind Wrapper zwingend erforderlich?