7 - Methoden Flashcards
Was sind Methoden und wozu werden sie verwendet?
Methoden sind benannte Code-Blöcke, die über ihren Namen beliebig oft aufgerufen werden können. Sie ermöglichen die Wiederverwendung von Anweisungsfolgen, strukturieren aber auch Programme und machen diese übersichtlicher.
Was ist die einfachste Form einer Methode?
Die einfachste Form einer Methode ist eine parameterlose Methode. Sie hat keine Parameter (und liefert keinen Wert zurück).
Formulierung einer parameterlosen Methode und Aufruf in der main-Methode
public static void main(String[] args) {
printStrings();
}
static void printStrings() {
System.out.println(“Hello”);
}
Was ist die main-Methode?
Die main-Methode ist eine Methode mit einem Array von Strings als Parameter und stellt gleichzeitig das Hauptprogramm dar.
Kann eine aufgerufene Methode auch selbst wieder Methoden aufrufen?
Ja.
Was sind Parameter?
Parameter sind Werte, die beim Aufruf an die Methode übergeben werden.
Formulierung einer Signatur
->Was ist eine Signatur?
static void printMax(int x, int y) {}
Die Signatur ist der Methodenkopf mit Parameterliste. Sie beschreibt, wie die Methode benutzt werden muss.
- static: Methode ist statisch
- void: liefert keinen Wert zurück
- printMax: Name (soll sinnvoll sein)
- (int x, int y): formale Parameter
Was sind formale und was sind aktuelle Parameter?
Formale Parameter sind jene Parameter, die bei der Deklaration der Methode angegeben werden. Sie werden wie in der Methode deklarierte Variablen behandelt.
Aktuelle Parameter sind jene Parameter, die beim Aufruf der Methode übergeben werden (beliebige Ausdrücke). Bsp.: printMax(a, b)
Wie werden primitive Datentypen, wie Referenztypen an Methoden übergeben?
Bei der Übergabe von Parametern spielt der Datentyp eine wichtige Rolle:
- primitive Datentypen werden als Kopie übergeben (copy-by-value): int, float, byte,…
- Referenztypen werden als Referenz übergeben (copy-by-reference): Arrays, Klassen, Strings; werden hier Daten in der Methode geändert, ist diese Änderung auch nach dem Methodenaufruf außerhalb der Methode sichtbar (außer Strings, da diese immutable sind).
Was sind Prozeduren? Was sind Funktionen?
Prozeduren sind Methoden, die keinen Wert zurückliefern. Sie können mit “return;” beendet werden.
Funktionen sind Methoden, die einen Wert zurückliefern. Dieser Wert wird mittels return zurückgegeben, wodurch die Funktion beendet wird (muss immer mit return beendet werden!). Der Rückgabe-Datentyp muss in der Signatur (vor dem Namen) angegeben werden. Bsp.:
static int max(int a, int b) {
int max = …;
…
return max;
}
Ist es erlaubt, in Funktionen/Prozeduren mehrere return-Anweisungen zu verwenden?
Ja, somit hat man mehrere Endpunkte.
Was ist eine überladene Methode?
Wenn es mehrere Methoden mit demselben Namen gibt, die sich in Anzahl der Parameter oder ihren Datentypen unterscheiden (also in ihrer Signatur), spricht man von überladenen Methoden. Die Methoden dürfen sich allerdings nicht nur durch ihren Rückgabetyp unterscheiden.
Warum können Methoden Arrays als Übergabeparameter akzeptieren?
Das ist sehr hilfreich, wenn man eine variable Anzahl an Werten übergeben möchte (z.B. auch bei main-Methode). Man muss dafür nicht unbedingt ein Array erzeugen, man kann auch “…” hinter den Datentyp hinschreiben und die Methode akzeptiert nun mehrere Werte gleichzeitig. Bsp.: static void printNumbers(int… values) {}
printNumbers(1,2,3,4,5)
Wo sind lokale Namen sichtbar?
Lokale Namen sind nur innerhalb der Methode, in der sie deklariert wurden, sichtbar - außerhalb nicht. Der Speicherplatz für diese Variablen wird bei jedem Aufruf neu angelegt und nach dem Beenden wieder freigegeben.
Wo sind globale Namen sichtbar?
Eine Variable ist global sichtbar, wenn sie außerhalb der Methode (auf Klassenebene) deklariert wurde. Der Speicherplatz von globalen Variablen wird bei Programmstart angelegt und erst zu Programmende freigegeben. Änderungen durch eine Methode sind auch nach dem Methodenaufruf noch vorhanden.