MINT üben

Methoden

Zwei Textaufgaben mit Hinweisen und Erwartungshorizont zu Parametern, void und return.

Dein Fortschritt:
0 / 0 Aufgaben
1

Einladungen zur Geburtstagsparty

AFB I–II

Aylin plant ihre Geburtstagsparty. Ihr Programm druckt Einladungskarten und berechnet, wie viele Stühle gebraucht werden: für alle Freunde, alle Familienmitglieder und für sie selbst. Ihr Bruder Cem möchte zwei Zeilen am Ende von main ergänzen (Material 2).

Material 1: Einladung.java
public class Einladung {
    public static void karte(String name, int uhr) {
        System.out.println("Hallo " + name + "!");
        System.out.println("Party um " + uhr + " Uhr");
    }

    public static int gaeste(int freunde, int familie) {
        int summe = freunde + familie;
        return summe + 1;
    }

    public static void main(String[] args) {
        karte("Aylin", 16);
        karte("Ben", 17);
        int stuehle = gaeste(6, 3);
        System.out.println("Stühle: " + stuehle);
    }
}
Das Programm ist fehlerfrei.
Material 2: Cems Ergänzung in main
int x = karte("Cem", 18);
System.out.println(summe);
javac meldet zu beiden Zeilen einen Fehler.
  1. Entnimm Material 1 für beide Methoden außer main den Namen, die Parameter mit Typ und den Rückgabetyp.
  2. Gib die Ausgabe des Programms an.
  3. Erkläre am Beispiel von karte und gaeste den Unterschied zwischen einer Methode mit void und einer Methode mit Rückgabewert.
  4. Begründe für beide Zeilen in Material 2, warum javac sie nicht übersetzt.

Hinweise

Hinweis zu Aufgabe a)
Alles steht im Methodenkopf: public static Rückgabetyp name(Typ parameter, …).
Hinweis zu Aufgabe b)
main startet. Jeder Aufruf springt in die Methode, die Argumente werden in die Parameter eingesetzt.
Hinweis zu Aufgabe c)
Was „kommt zurück“ an die Aufrufstelle? Was macht die Methode stattdessen?
Hinweis zu Aufgabe d)
Zeile 1: Was liefert karte zurück? Zeile 2: Wo wurde summe angelegt, und wo ist die Variable bekannt?