Eine Methode (auch Funktion, Subroutine oder Prozedur genannt) ist ein Unterprogramm innerhalb eines Programmes, mit dem Quellcode strukturiert werden kann. Methoden können beliebig oft aufgerufen und wiederverwendet werden.
Aufbau von Methoden
Eine Methode kannst du dir wie einen Backofen vorstellen. In die Methode, oder hier den Backofen, kommen verschiedenste Zutaten hinein. Der Backofen, oder die Methode, macht dann etwas damit und am Ende kommt hoffentlich eine leckere Pizza raus (solange vorher keine Ananas dazugegeben wird).
Methoden sind grundsätzlich in zwei große Bereiche aufgeteilt: Dem Methodenkopf und dem Methodenrumpf.
Methodenkopf
Der Methodenkopf bestimmt grundlegende Eigenschaften der Methode. Dazu gehören
- Methoden-Name
- Parameter, die von der Methode erwartet werden
- Rückgabetyp der Methode
Besuche die App, um alle Inhalte zu sehen!
Dies ist der einfachste Aufbau einer Methode. Wenn du selbst eine Methode definieren möchtest, darfst du den Methodenamen selbst bestimmen. Achte jedoch auf die Konvention, dass Methodennamen im "lowerCamelCase" geschrieben werden.
Methodenkopf mit Übergabeparameter
Wenn die Methode mit Variablen arbeiten soll, müssen diese meist der Methode übergeben werden. Dies erfolgt durch die Definition von Übergabeparametern:
Besuche die App, um alle Inhalte zu sehen!
Der Methode summe
wurden hier zwei Variablen vom Typ int übergeben. Dabei dürfen die Namen auch frei gewählt werden. Anschließend berechnet die Methode die Summe beider Zahlen. Jedoch gibt es hier ein kleines Problem: Nachdem die Summe berechnet ist, wird die Methode beendet. Die Variable summe ist NICHT außerhalb der Methode nutzbar! Daher wird ein weiterer Abschnitt im Methodenkopf benötigt:
Rückgabetypen im Methodenkopf festlegen
Wird von einer Methode KEIN Rückgabetyp erwartet, so wird vor dem Methodennamen void
geschrieben.
Damit das Ergebnis einer Methode nicht einfach im Nichts verschwindet, kann es als Rückgabewert zurückgegeben werden. Dies geschieht mithilfe eines Rückgabetyps. Du musst der Methode also den Typen der Variable nennen, die du zurückgeben wirst. Dies geschieht vorab durch Definition im Methodenkopf:
Besuche die App, um alle Inhalte zu sehen!
Rückgabetypen können ein int, String, boolean oder ähnliches sein.
Bei dieser Methode wird ein Rückgabewert vom Typ int
erwartet. Um einen Rückgabewert aus der Methode zurückzugeben, wird das return-Statement verwendet. Hinter return
wird geschrieben, was zurückgegeben werden soll. Hier ist es die Variable summe
, welche den gleichen Typ wie der erwartete Rückgabetyp haben muss.
Achtung! Nach return
ist der Programmablauf innerhalb der Methode beendet. Jeglicher Programmcode, der nach dem return-Statement geschrieben wird, wird nicht ausgeführt!
Methodenrumpf
Wie bereits in obigen Beispielen erkennbar, erfolgt im Methodenrumpf die eigentliche "Arbeit". Hier wird gerechnet, oder Strings konkateniert, oder was auch immer deine Methode können soll. Der Methodenrumpf enthält also die gesamte Funktionalität.
Methoden aufrufen
Um eine Methode aufzurufen, muss diese im Programm definiert werden. Es ist nicht möglich, Methoden innerhalb von Methoden zu definieren. Für den Anfang kannst du Methoden einfach direkt unter deine Main-Methode schreiben.
Die Reihenfolge, in der du Methoden definierst, spielt dabei keine Rolle.
Achtung: Im Folgenden steht vor jeder Methode das Stichwort static
. Schreibe dies auch vor jede deiner Methoden. Was eine static
Methode von einer anderen Methode unterscheidet, lernst du später noch kennen.
Wenn du eine Methode verwenden möchtest, dann kannst du Folgendes schreiben:
Besuche die App, um alle Inhalte zu sehen!
Dabei wird in der Zeile plusOne(number)
die Methode plusOne
aufgerufen und die Variable number
mit Wert 5 an die Methode übergeben.
Da die Methode plusOne
den Rückgabetyp int
hat, wird ein int-Wert zurückgegeben. Dieser muss beim Aufruf in eine Variable gespeichert werden, wenn er nicht verloren gehen soll:
Besuche die App, um alle Inhalte zu sehen!
Nach Aufruf der Methode wird der Wert 6 in der Variablen newNumber
gespeichert.
Beispiel
Jan möchte super gerne eine Pizza backen. Die Methode bake
soll genau dies ermöglichen:
Besuche die App, um alle Inhalte zu sehen!
Die Methode bake
soll verschiedene Zutaten annehmen. Die Zutaten sind jeweils eine gewisse Menge an Teig dough
, Tomatensoße tomatosauce
, Käse cheese
und Belag topings
. Die Mengen werden jeweils in Gramm als int
angegeben und müssen vorab im Methodenkopf definiert werden:
Besuche die App, um alle Inhalte zu sehen!
Zur Vereinfachung ist in diesem Beispiel die pizza
die Summe der Zutaten. Also von Teig, Käse, Tomatensoße und Belag. Daher werden die Zutaten innerhalb des Methodenrumpfes addiert:
Besuche die App, um alle Inhalte zu sehen!
Im vorletzten Schritt muss Jan die Pizza noch aus dem Backofen holen (also hier aus der Methode). Aktuell ist der Rückgabetyp noch void
, die Methode gibt daher nichts zurück. Als Rückgabetyp soll zur Vereinfachung der int
-Wert der Summe aller Zutaten (int pizza
) zurückgegeben werden:
Besuche die App, um alle Inhalte zu sehen!
Zum Abschluss muss Jan noch seine Pizza backen, also die Methode tatsächlich in einem Java Programm aufrufen:
Besuche die App, um alle Inhalte zu sehen!
Und fertig ist Jans 1,6kg Pizza, guten Appetit!