Übung 1 von 4
Deine erste Methode
Eine Methode ist ein wiederverwendbarer Code-Block mit einem Namen.
static void hallo() {
IO.println("Hallo!");
}
void bedeutet: Die Methode gibt nichts zurück, sie tut nur etwas.
Die Methode begruessen ist schon definiert. Rufe sie in main auf.
Startcode
void begruessen() {
IO.println("Willkommen!");
}
void main() {
// Rufe begruessen() auf
}
Hintergrund
Der Call Stack
Wenn eine Methode aufgerufen wird, legt die JVM einen neuen Stack Frame auf den Call Stack. Darin stehen Parameter, lokale Variablen und die Rücksprungadresse.
Wenn die Methode endet, wird der Frame wieder entfernt und die Ausführung springt zurück. Zu viele verschachtelte Aufrufe (z.B. endlose Rekursion) → StackOverflowError.
Übung 2 von 4
Methode mit Parameter
Methoden können Eingabewerte (Parameter) entgegennehmen:
static void sagHallo(String name) {
IO.println("Hallo " + name);
}
Die Methode verdopple nimmt eine Zahl und gibt das Doppelte aus. Ergänze die eine fehlende Zeile.
Startcode
void verdopple(int zahl) {
// Gib zahl * 2 aus
}
void main() {
verdopple(5);
verdopple(12);
}
Hintergrund
Pass by Value
Java übergibt Parameter immer by value — es wird eine Kopie des Werts übergeben. Änderst du den Parameter in der Methode, ändert sich die Original-Variable nicht.
Bei Objekten wird die Referenz kopiert — du kannst also das Objekt verändern, aber nicht die Referenz selbst. Das verwirrt Anfänger oft.
Übung 3 von 4
Return
Statt nur etwas auszugeben, kann eine Methode einen Wert zurückgeben:
static int verdopple(int x) {
return x * 2;
}
Statt void steht jetzt der Rückgabetyp (int), und return gibt den Wert zurück.
Ergänze die return-Zeile, damit quadrat das Quadrat der Zahl zurückgibt.
Startcode
int quadrat(int n) {
// Gib n * n zurueck
return 0;
}
void main() {
IO.println(quadrat(4));
IO.println(quadrat(7));
}
Hintergrund
void vs. Return-Typ
void = "diese Methode gibt nichts zurück". Jeder andere Typ (int, String, etc.) zwingt dich, mit return einen Wert zurückzugeben.
Der Compiler prüft, dass jeder mögliche Pfad ein return hat. Wenn du ein if ohne else hast und nur dort returnst, meckert Java — es könnte ja sein, dass die Bedingung false ist.
Übung 4 von 4
Zwei Parameter
Methoden können mehrere Parameter haben — getrennt durch Komma:
static int addiere(int a, int b) {
return a + b;
}
Ergänze die return-Zeile: Gib den größeren der beiden Werte zurück.
Tipp: Du kannst schreiben: if (a > b) return a; else return b;
Startcode
int max(int a, int b) {
// Gib den groesseren Wert zurueck
return 0;
}
void main() {
IO.println(max(3, 7));
IO.println(max(10, 2));
}
Hintergrund
Method Overloading
In Java kannst du mehrere Methoden mit dem gleichen Namen haben, solange die Parameter unterschiedlich sind. Das heißt Overloading:
int max(int a, int b) und double max(double a, double b) können gleichzeitig existieren. Java wählt automatisch die passende Version basierend auf den übergebenen Typen.