Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Jetzt lerne ich Java 6

Wrapper-Klassen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auf die klassische Art des Castings folgen nun drei alternative Varianten der Typumwandlung: Die Wrapper-Klassen stammen aus der objektorientierten Programmierung, was eine größere Flexibilität nach sich zieht.
09:38

Transkript

Sie haben noch eine weitere Möglichkeit, Typenumwandlungen, Castings zu betreiben - mit Hilfe von sogenannten Wrapper-Klassen. Dies ist ein objektorientierter Ansatz, aber ich denke an dieser Stelle es ist ganz gut, schon mal einen Blick etwas weiter in die Objektorientierung zu werfen. Denn mit Hilfe dieser Wrapper-Klassen können Sie vieles sehr einfach durchführen. Schauen wir uns das aber jedoch direkt an einem Beispiel an. Dazu lege ich mir hier in meinem Paket "java" noch schnell eine weitere Java Main Class an. Die nennen wir einfach mal "Wrapper", Finish. Und bekommen jetzt hier ein neues Java-File. Hier den Konstruktor werfen wir noch einfach mal in den Müll, den brauchen wir zur Zeit noch nicht. Und hier in der main-Methode legen wir jetzt los, indem wir uns einfach mal eine Integer-Variable nehmen mit dem schönen Wort "zahl", und nehmen wir doch einfach die 7. Ich möchte jetzt gerne diese Zahl umwandeln in eine Float. Nun, haben wir vorhin schon gemacht, aber ich möchte Ihnen das Ganze jetzt mit Hilfe einer Wrapper-Klasse zeigen. Dazu leg' ich mir einfach eine neue Variable, eine Float fest, nennen wir sie "f", und legen nun hier die Zahl hinein. Und um aus Zahl, was im Moment noch im Integer ist, eine Float zu machen mit Hilfe einer Wrapper-Klasse, brauchen wir eine neue Instanz von der Klasse Float. Um eine neue Instanz von der Kasse Float zu haben, brauchen wir das Schlüsselwort "new". Das werden Sie später in der Objektorientierung etwas noch näher kennenlernen. Und hier bilden wir also eine neue Instanz der Klasse Float. Die Klasse Float schreibt sich groß, da alle Klassen innerhalb von Java groß geschrieben werden. Und beim Erzeugen einer neuen Instanz übergibt man gegebenenfalls Übergabeparameter in den sogenannten Konstruktor. Nun müssen wir gar nicht genau wissen. Wie müssen es einfach erstmal wissen, okay wir müssen Parameter festlegen. Und das kommt in runden Klammern hier hinter Float. Und wir übergeben jetzt einfach unserem Integer Zahl. Also, für die Leute, die hier schon etwas mehr wissen - wir haben einen Konstruktor innerhalb der Klasse Float, der einen Integer entgegennimmt, und uns dann als Instanz ein Objekt der Klasse Float liefert. Und das haben wir jetzt hier. Und damit können wir arbeiten, als ob es auch eine ganz normale Zahl für uns wäre. Und damit wir uns das Ganze anschauen können, machen wir hier schnell wieder eine Ausgabe. Und lassen uns "f" einfach mal ausgeben. Ich kompiliere das Ganze jetzt mit shift + F6. Dann wird eben nur dieses Java-File kompiliert schön ausgeführt. Und wir sehen, das Ergebnis ist 7.0, was uns andeutet: okay, das ist jetzt eine Gleitkommazahl. So einfach war das also. Nun das Ganze gibt es natürlich jetzt noch für alle möglichen anderen Datentypen. Das heißt, jeder primitive Datentyp ist eigentlich auch durch eine Klasse wieder abgebildet. Und daher können wir uns das auch noch kurz anschauen. Wir können also, auch wenn's nicht gerade sehr sinnvoll ist, auch das Ganze uns mal als Integer anschauen. Hier gibt es also eine Klasse Integer. Gut, ein Integer… in ein Integer-Objekt umzuwandeln, nicht unbedingt sinnvoll, aber der Vollständigkeits halber machen wir das hier mal. Und das Ganze geht natürlich auch nach Double. Da haben wir: d.. Und damit haben Sie wenigstens das Ganze schon mal für die Zahlen. Ist also ein relativ einfaches Prinzip. Nun, diese Wrapper-Klassen können noch mehr. Und zwar, diese können sogar Strings umformen, also Zeichenketten. Und das ist schon eine ganz spannende Sache. Wir legen uns mal eine Zeichenkette an: einen String, nennen wir das Ganze mal "textZahl", und hier dann legen wir einfach mal 11 rein. Da das Ganze hier in Anführungszeichen steht, sehen wir: okay, das ist ein String, eine Zeichenkette - mit der könnten wir, zum Beispiel, gar nicht rechnen, oder ähnliches. Nun, für was braucht man das? Wenn Sie, zum Beispiel, später in grafischen Oberflächen Eingabefelder haben, wo Zahlen eingegeben werden, dann wird aus diesem Eingabefeld erstmal ein String geliefert. Denn er könnte ja auch den Namen da oben reinschreiben. In Anbetracht dessen müssen wir dann diesen String umwandeln in eine Zahl, damit wir damit, zum Beispiel, auch rechnen können. Und das können wir über diesen Weg, den ich Ihnen jetzt zeige, tun. Daher setzen wir uns hier unten drunter einfach noch einen Block, und erzeugen noch mal einen Integer daraus. Und zwar, nenn' ich den mal String "int si", und jetzt sage, das soll sein ein "new Integer", Klammer auf, und jetzt kommt eigentlich der "Klu" Wir legen jetzt einfach nur den String hier hinein. Und dann wird das Ganze hier auch umgeformt. Das heißt für die Leute, die sich schon ein bisschen mit Konstruktoren beschäftigt haben: Es gibt doch einen Konstruktor, der einen String entgegennimmt und diesen umformt in einen Integer. Gut. Das kann funktionieren, wenn wir das Ganze hier oben haben. Lassen wir es hier einfach mal ausgeben. Ja, so kommt Ergebnis "f" raus. Das hat also wunderbar funktioniert. Es kann aber auch schiefgehen, wenn ich da zum Beispiel, oben einen Namen reinschreibe… hm Wenn ich das umforme, dann sehen wir: up… da kommt zur Laufzeit ein Problem, nicht zum Zeitpunkt des Kompilierens, weil.. er weiß es ja zu zeiten des Kompilierens doch gar nichts. Er sagt jetzt hier: du, das kann ich nicht in die Zahl umformen, also Helge lässt sich sehr schlecht in eine Zahl umformen. Und dann bekommen wir eine sogenannte "NumberFormatException". Das ist eine Ausnahme, ein Fehler, und den können wir später sogar noch abfangen. Das werden Sie lernen in den Kapiteln über Fehlerbehandlung über Try and Catch. Und das ist also ein Fehler, den wir abfangen können später. Tolle Sache. Also, das war jetzt nur die Demonstration dessen, was da alles passieren könnte. Aber wir sind natürlich brav und geben hier auch wirklich nur Strings von Zahlen ein. Ja, und das Ganze können Sie jetzt natürlich auf für andere Varianten spielen. Also für Floats können wir das spielen. Und für Doubles natürlich auch. Sehr schön! Jetzt haben Sie also die Wrapper-Klassen aus der Sicht Ihrer Konstruktoren kennengelernt. Es gibt doch noch eine etwas schnellere Variante, ein Typecasting durchzuführen mit Hilfe von Wrapper-Klassen. Und das soll den Abschluß dieses Filmes bilden. Und zwar, ich form' das Ganze hier noch mal schnell um in einen Integer, aber über eine statische Methode von Integer. Und zwar, Integer selber, genau wie die anderen Wrapper-Klassen, haben eine Methode mit dem Namen "valueOf". Und diese Methode ist statisch. Das bedeutet, wir brauchen noch nicht einmal eine Instanz von Integer, die wir ableiten müssen, sondern wir können wirklich hier einfach auf die Klasse selber zugreifen. Und wenn wir hier jetzt mal den Punkt eingeben, dann sehen wir auch schon, dass unsere Umgebung sehr hilft. Da das Ganze eine Klasse ist, gibt's natürlich viele Eigenschaften und Methoden. Und wenn hier mal so durchschaue, dann finden wir einiges interessantes. Zum Beispiel haben wir hier oben die Möglichkeit uns mal ausgeben zu lassen, was gerade auf Ihrem Betriebssystem der Maximalwert und der Minimalwert für einen solchen Integer wäre. Sehr praktische Geschichte. Wir können aber auch hier mal ein bisschen tiefer gehen. Und da möchte ich eigentlich hin. Wir haben hier einmal eine Methode "parseInt". Und man sieht, man kann einen String daran übergeben. Das bedeutet, wir bekommen einen Integer zurück als Zahlenwert. Und wir schmeißen einen String hinein. Und wenn ich das hier mal auswähle - das sehen Sie jetzt hier im Ganzen nicht so gut. Das Fenster ist etwas abgeschnitten. Das müssen Sie sich in Ihrer eigenen Umgebung mal anschauen - dann bekommen wir hier sogar noch eine kleine Erklärung dazu. Hier steht also so viel drin: du kannst einen String übergeben, und zurück bekommst du einen Integer-Wert. Und gegebenenfalls, falls das Ganze nicht hinhaut, bekommen wir eine "NumberFormatException". Die haben wir ja schon kennengelernt. Nun, das ist also "parseInt", das gibt uns einen Integer-Wert zurück. Wir können aber auch ein Objekt zurückbekommen, wie wir das die ganze Zeit jetzt hier gemacht haben. Und zwar, dafür nehmen wir dann nicht "parseInt", sondern "valueOf". Sehen wir also dann String übergeben und es kommt zurück eine Instanz von Integer. Gut. Das verwenden wir jetzt hier. Also "valueOf" - das O schreibt sich dann groß - und da hinein geben wir wieder "textZahl" Und das war's dann schon. Und das Ganze lassen wir uns hier unten ausgeben. Und wenn es geklappt hat … jep … bekommen wir wieder die 11 geliefert. Wunderbar. Hat also geklappt. Und, wie gesagt, wenn wir jetzt hier einen String dran hätten, und den er nicht umformen könnte, zum Beispiel, 11, dann hätten wir eine "NumberFormatException". Sie haben jetzt mehrere Wege kennengelernt, Typecasting durchzuführen, umwandeln von einem Datentyp in den anderen. Und doch es wird sich, denk ich mal, in der Praxis zeigen. Dieser Weg hier bei "valueOf" ist, wie gesagt, ein kleines bisschen schneller, als der Weg hier oben. Und daher können wir den in der Praxis in den meisten Fällen vorziehen.

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!