Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Java 7 Grundkurs

Variable Argumentezahl: varargs

Testen Sie unsere 2018 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Varargs steht für eine Variable Anzahl von Argumenten beim Aufruf einer Methode. Was es mit den drei Punkten auf sich hat, erfahren Sie hier.
04:48

Transkript

Wenn wir in Java Methoden definieren, dann müssen wir die Anzahl der Parameter immer genau festlegen. Ich habe jetzt z. B. diese Klasse "Rechner", und die hat eine Methode "Addieren". Diese Methode nimmt genau zwei Zahlen, addiert sie und gibt das Ergebnis zurück. Eine Möglichkeit, die Anzahl der Parameter variabel zu halten ist ein Array zu verwenden. An dieser Stelle muss hier lediglich der Typ deklariert werden, nicht aber die Größe des Arrays. Damit ist dem Aufrufer überlassen, wie viele Zahlen er je gerne übergeben möchte. Die Implementierung der Methode ist recht unkompliziert. Zuerst wird eine Variable für die Summe angelegt und mit Null initialisiert. Dann gehen wir mit einer erweiterten Vorschleife durch das Array "Zahlen" durch, und holen uns die einzelnen Werte nacheinander in die Variable "Zahl". Diese Zahl wird dann zur bisherigen Summe dazu addiert. Schließlich geben wir am Ende die Summe zurück. Schauen wir uns nun an, wie die Aufrufe dieser beiden Methoden aussehen. Zuerst erzeuge ich mir in der Mail-Methode ein Exemplar meines Rechnerst, und nenne es "Mein Rechner". Um die Methode aufrufen zu können, die zwei Werte übernimmt, lege ich mir hier zwei Variablen für die Werte an, rufe die Methode auf und übergebe die beiden Werte. Das Ergebnis merke ich mir hier in der Variablen "Summe", und gebe das Ganze dann aus. Ich könnte sogar die Deklaration der beiden Variablen weglassen und die Werte direkt in den Methodenaufruf reinschreiben. Das würde dann ungefähr so aussehen. Jetzt gibt es hier unten natürlich die Variablen nicht mehr, also fallen die auch raus. So. Alles recht einfach. Kommen wir nun zur zweiten Addieren-Methode. Um diese aufrufen zu können, müssen wir uns natürlich vorher erst mal ein Array basteln, das hier entsprechend Zahlen enthält. Ich mache das hier über die verkürzte Notation, bei der ich die Elemente innerhalb von geschweiften Klammern hintereinander weg aufzähle, durch Komma getrennt und dadurch implizit auch gleich die Größe des Arrays mit angebe. Dann kann ich meinen Rechner nehmen, kann "Addieren" aufrufen, und dieses Array übergeben. Schauen wir mal, ob das funktioniert. Genau: 3+4 ist 7. Die Summe aller dieser Zahlen hier ist 199. D.h. also, wir müssen entweder die Anzahl der Parameter vorher fest verdrahten wie im ersten Beispiel, oder der Aufrufer muss jedes Mal vorher ein Array bauen, damit er dann die Methode aufrufen kann. Nun gibt es noch eine dritte Variante und das sind die Varargs. Das steht für die variable Argumentenanzahl. Die Syntax dafür sieht folgendermaßen aus: ich gehe hier in diese Methode und ändere die entsprechen ab. Nimmdie beiden Klammern weg. Datentyp, der übergeben werden soll und dann drei Punkte. Damit sage ich dem Compiler: Hier kommt jetzt eine unbestimmte Abzahl von Int-Werten rein. Intern wird aus all diesen übergebenen Werten dann ein Array gemacht. Wir können also hier in der Methode wieder auf "Zahlen" zugreifen, als wäre es ein Array, aber der Aufrufer der Methode muss nicht mehr das Array selbst basteln, sondern er kann einfach seine Zahlen hintereinander weg durch Komma getrennt als einzelne Parameter übergeben. Wenn wir wieder dahin zurückgehen, wo wir die Methode aufrufen, dann sehen wir: der Aufruf hier funktioniert immer noch. Ich kann einer solchen Varargs-Methode durchaus auch weiterhin ein Array übergeben, muss ich aber nicht mehr. Stattdessen kann ich die zu addierenden Werte auch einfach hier direkt hineinschreiben. Ich mache das mal. Ich nehme diese Zeile raus, und schreibe hier ein paar Zahlen hin. Mit einer Zahl funktioniert es, mit zwei Zahlen klappt es auch, drei Zahlen, vier Zahlen. Problemlos. Ich kann diese Methode "Addieren" nun also mit beliebig vielen Parametern aufrufen, mindestens Null, dann würde ich ein Array der Länge Null übergeben. Nach oben gibt es zwar eine technische Grenze, Die liegt aber sehr weit hinten. Ich zeige das mal, dass das immer noch funktioniert. Da sehen wir: Die Summe ist 273. Wie wir sofort sehen können, stimmt das natürlich. Zwei Dinge müssen Sie noch beachten, wenn Sie Varargs verwenden. Zuerst einmal, Sie können immer nur genau einen Varargparameter Promethodendeklaration verwenden. Ich kann also nicht noch einen weiteren solchen Parameter deklarieren. Das geht nicht. Der Compiler lässt es schlicht zu. Das andere, Sie können normale Parameter zusätzlich verwenden, aber die müssen alle davor stehen, d. h., der Varargparameter muss immer der letzte in der Reihe sein. Ich dürfte hier beispielsweise hier davor noch einen String übergeben. Und jemand, der diese Methode aufrufen möchte, muss als immer einen String übergeben, und danach Null oder mehr Zahlen. Damit haben Sie nun also gesehen, wie Sie mit Varargs Ihre Methoden so gestalten können, dass Aufrufer eine frei wählbare Anzahl von Parametern übergeben können.

Java 7 Grundkurs

Machen Sie sich mit den Grundlagen der Java-Programmierung vertraut und lernen Sie die Syntax der Sprache sowie das Konzept der objektorientierten Softwareentwicklung kennen.

8 Std. 32 min (66 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!