Parameter von Methoden
Parameter beeinflussen alle Programme, die du schreibst und können dir das Programmieren um einiges erleichtern. Wie das funktioniert, erfährst du in diesem Beitrag.
Inhaltsübersicht
Übergabe von Daten an Methoden mittels Parameter
Parameter hast du bestimmt schon mal im Programmcode gesehen oder sogar selbst benutzt. Spätestens als du mit der Klasse String und einem Stringobjekt experimentiert hast, solltest du schon auf Parameter gestoßen sein.
Aber was genau ist eigentlich ein Parameter? Ein Parameter enthält Daten, die man über die runden Klammern beim Methodenaufruf an die Methode selbst übergeben kann. Dieses Vorgehen ist sehr wichtig, da sich Methoden außerhalb der main-Methode befinden und somit keinen Zugriff auf lokale Daten haben, die du in der main-Methode initialisiert hast. Damit also andere Methoden mit deinen Daten arbeiten können, brauchen sie die nötigen Parameter.
Das kannst du dir in etwa so vorstellen: Du rufst zum Beispiel einen Pizzaservice an, um eine Pizza nach Hause zu bestellen. Nun muss der Service aber noch wissen, wo du wohnst. Dafür musst du ihm während des Telefonats genügend Informationen mitteilen, damit deine Pizza bei dir ankommt.
Diesen Service kannst du dir als eine Methode vorstellen. Du rufst die Methode auf und sie macht ihren Job. Manche Methoden brauchen aber noch extra Daten, wenn sie aufgerufen werden, damit sie mit diesem Wissen arbeiten können. Und genau hier kommen die Parameter ins Spiel.
Bei jeder Methodendeklaration muss angegeben werden, wie viele Parameter diese Methode beim Aufruf bekommt. Dabei ist es egal ob sie einen, zwei, zehn oder gar keinen Parameter hat. Hauptsache sie bekommt alle Daten, die sie benötigt.
Am besten schauen wir uns ein Beispiel dazu an:
Parameter von Methoden – Beispiele
Hier siehst du eine void-Methode, also eine Methode, die keinen Wert zurückgibt. Diese Methode soll irgendetwas machen. Was genau sie macht, ist im Moment nicht von Bedeutung. Wichtig sind die Parameter in den runden Klammern.
In diesem Beispiel werden drei primitive Datentypen als Parameter in der Methode angegeben. Ein boolean, ein long und ein char Datentyp. Alle Datentypen wurden schon mit einem Namen deklariert. Dabei musst du dich aber nicht auf die primitiven Datentypen beschränken. Wenn du möchtest, kannst du auch ganze Objekte in Parametern deklarieren. Initialisieren darf man sie in den Parametern der Methodendeklaration jedoch noch nicht. Dieser Schritt wird erst beim Methodenaufruf gemacht.
Schauen wir uns dazu ein weiteres Beispiel an:
Dafür benutzen wir eine Methode, die die Differenz zweier Werte berechnen soll und als double zurückgibt. Damit sollte dir klar sein, dass die Methode beim Aufruf zwei Werte braucht, mit denen sie arbeiten kann.
Also erweitern wir unseren Code mit dem Aufrufen der Differenz-Methode in der main-Methode.
„diff“-Methode und „difference“-Variable
Wie wir vorhin schon festgestellt haben, handelt es sich bei „diff“ um eine Methode, die einen double Wert zurückgibt. Deswegen speichern wir den Wert, den die Methode zurückgibt, direkt mittels Zuweisungsanweisung in der Variable „difference“.
Aber was für ein Wert steckt nun in der Variable „difference“? Das ist ganz einfach. Wir wissen ja schon, dass die Methode x minus y berechnet. Außerdem haben wir in der Methodendeklaration angegeben, dass diese Methode zwei Werte übergeben bekommt, und zwar x und y. Beim Methodenaufruf in der main-Methode initialisieren wir die beiden Variablen. Dabei bekommt x den Wert 10 und y den Wert 5. Also rechnet die Methode 10 minus 5. Damit ist das Ergebnis 5 und der Wert wird in der Variable „difference“ gespeichert.
Aber Achtung! Du musst immer darauf achten, in welcher Reihenfolge die Parameter von der Methodendeklaration angegeben sind und wie viele es sind. Denn solltest du beim Aufrufen der Methode „diff“ weniger oder mehr Parameter übergeben als verlangt, wird der Compiler einen Error ausgeben. Zusätzlich musst du darauf achten immer den richtigen Datentyp zu übergeben.
Wenn also ein double an der ersten Parameterstelle verlangt wird, dann darfst du an dieser Stelle nur Zahlen verwenden und nicht zum Beispiel ein „true“. Das geht nur wenn die Parameterstelle als boolean deklariert wurde.
Auch Übergabe von Variablen möglich
So, das sind alle Bedingungen auf die du achten musst. EINES solltest du aber noch wissen.
Du bist nicht darauf beschränkt WERTE beim Methodenaufruf zu übergeben. Du kannst auch Variablen übergeben. Denn wie wir wissen, speichern Variablen ja auch nur Werte.
Dafür haben wir zwei Variablen in der main-Methode deklariert und initialisiert. Sie besitzen zwar den gleichen Namen wie die Variablen in der diff-Methode. Da es sich aber um lokale Variablen handelt, sind diese somit nicht methodenübergreifend und es entstehen keine Errors. Diese Variablen können wir dann ganz einfach in den Methodenaufruf einbauen und bekommen das gleiche Ergebnis.
Du fragst dich, warum dann eigentlich der ganze Aufwand? Wenn du dein Programm anpassbarer gestalten möchtest, ist die Verwendung von Variablen – wie wir es hier gemacht haben – hilfreich und oftmals sogar unumgänglich. Denn sie ermöglichen es dir, Parameter schnell und einfach zu ändern.
Jetzt sollten all deine offenen Fragen zur Nutzung von Parametern geklärt sein und du kannst wieder in Ruhe weiterprogrammieren. Viel Erfolg dabei!