Methode

Aus Wiki Herr Kimmig
Wechseln zu: Navigation, Suche


Begriff

Unter einer Methode versteht man allgemein eine Abfolge von Befehlen. Man kann diese auch als Unterprogramm auffassen, welche Daten verarbeitet und ein Ergebniswert liefert.

Aus der Mathematik kennen wir bereits einige Methoden, dort nennen wir diese Funktionen. Bekannt sollte beispielsweise die Sinusfunktion sein, beispielsweise sin(30°).

Beim Programmstart wird die main-Methode automatisch aufgerufen. Darin können wir weitere Methoden aufrufen.

eigene Methoden

Wir können natürlich auch eigene Methoden erstellen die wir später aufrufen können. Jede Methode benötigt wieder einen Namen (z.B. sin) über welchen wir diese später aufrufen können. Außerdem müssen wir den Rückgabetyp der Methode angeben. Dieser gibt an, von welchem Datentyp das Ergebnis der Methode ist. Beim Sinus wäre das Beispielsweise double. Wenn eine Variable kein Ergebnis zurückgibt, so müssen wir void angeben.

Wollen wir der Methode irgendwelche Werte übergeben, mit denen die Methode dann rechnen kann, so geben wir diese als sogenannte Parameter an. Beim Sinus wäre das zum Beispiel die Winkelgröße. Der Sinus übernimmt lediglich einen Parameter (also gerade den Winkel), wir können aber auch andere Methoden programmieren, welche mehrere (oder auch gar keinen) Parameter übernehmen.

Für jeden Parameter müssen wir auch wiederum den Datentyp festlegen. Dieser gibt zum einen an, wie wir innerhalb der Methode damit umgehen können, zum anderen aber auch, welche Werte wir später beim Aufruf der Methode übergeben können bzw. müssen. Außerdem müssen wir jedem Parameter natürlich auch wieder einen Namen geben mit dem wir diesen später in der Methode verwenden können. Parameter sind in der Hinsicht gleich wie Variablen.

Bei eigenen Methoden muss dann auch noch angegeben werden, was die Methode macht, d.h. die Befehlsabfolge. Diesen nennt man Methodenrumpf. Diese Befehle werden in geschweifte Klammern eingeschlossen.

Damit ist eine Methode folgendermaßen aufgebaut:

Rückgabedatentyp Methodenname(Parameterdatentyp1 Parametername1, Parameterdatentyp2 Parametername2, ...) {
    [...] // Befehle
}

Beispiel

Wir könnten uns eine Methode schreibeQuadrat programmieren. Diese soll eine ganze Zahl als Parameter bekommen, davon das Quadrat berechnen und das Ergebnis anschließend auf der Konsole ausgeben. Ergebnis soll vorerst noch keines zurückgegeben werden, d.h. der Rückgabedatentyp ist void:

void schreibeQuadrat(int zahl) {
    int quadrat = zahl * zahl;
    System.out.println(quadrat);
}

public static

Zunächst müssen wir für unsere ersten Methoden noch die beiden Schlüsselwörter public und static vor die jeweiligen Methoden schreiben. Was diese bedeuten, wird in den Kapiteln public und private und static behandelt. Zum jetzigen Zeitpunkt müssen wir dies einfach so hinnehmen.

Position im Quellcode

Wir kennen bereits die main-Methode. Diese wird aufgerufen, sobald wir das Programm starten. Diese main-Methode steht in einer Klasse, d.h. zwischen den geschweiften Klammern dieser Klasse. Eigene Methoden werden ebenfalls innerhalb einer Klasse (zunächst innerhalb der gleichen Klasse) programmiert. Wir schreiben diese entweder vor oder nach die main-Methode. Dabei muss man aufpassen, dass die Klammerung mit geschweiften Klammern richtig paarweise gesetzt ist.

Methodenaufruf

Haben wir eine eigene Methode programmiert, so lässt sich diese aufrufen indem wir den Methodennamen gefolgt von runden Klammern schreiben. In diesen runden Klammern müssen wir die Werte angeben, die wir als Parameter übergeben wollen bzw. müssen. Die Reihenfolge der Parameter wird dabei durch die Programmierung der Methode vorgegeben!

Komplettes Beispiel 1

class Beispiel {
    public static void main(String[] args) {
        int a = 5; // Variable anlegen
        schreibeQuadrat(a); // rufe die Methode auf mit dem Wert der Variablen a als Parameter
        schreibeQuadrat(9); // rufe die Methode auf mit dem Wert 9 als Parameter
    }

    public static void schreibeQuadrat(int zahl) {
        int quadrat = zahl * zahl; // berechne Quadrat
        System.out.println(quadrat); // schreibe das Ergebnis auf die Konsole
    }
}

Rückgabe von Werten

Wollen wir mit dem Ergebnis einer Methode weiterrechnen, so können wir dieses durch die Methode zurückgeben lassen. Dies passiert mit dem Befehl return gefolgt von dem Rückgabewert.

Beispiel

Wie oben könnten wir das Quadrat einer Zahl berechnen und dieses dann zurückgeben lassen:

int berechneQuadrat(int zahl) {
    int quadrat = zahl * zahl;
    return quadrat;
}

Zum einen wird hier die direkte Ausgabe durch den return quadrat;-Befehl ersetzt, welcher das Ergebnis der Berechnung zurückgibt. Zum anderen muss aber auch der Rückgabedatentyp der Methode in int angepasst werden, da diese jetzt natürlich eine Zahl zurückgibt.

Dieses Ergebnis der Methode können wir beim Methodenaufruf wiederum in eine Variable abspeichern und so später für weitere Berechnungen/Aktionen verwenden.

Komplettes Beispiel 2

class Beispiel {
    public static void main(String[] args) {
        int a = 5; // Variable anlegen
        int b = berechneQuadrat(a); // berechne das Quadrat von a und speichere es in Variable b
        System.out.print("Das Ergebnis von a^2 ist: ");
        System.out.println(b);

        int c = berechneQuadrat(17); // berechne das Quadrat von 17 und speichere es in Variable c
        System.out.print("Das Ergebnis von 17^2 ist: ");
        System.out.println(c);
    }

    public static int berechneQuadrat(int zahl) {
        int quadrat = zahl * zahl; // berechne Quadrat
        return quadrat; // gib das Ergebnis zurück
    }
}

Vorgegebene Methoden

Wir haben bereits einige durch Java vorgegebene Methoden benutzt. Am gängigsten ist die Methode System.out.println();. Dieser Methode können wir als Parameter einen primitiven Datentyp angeben, welcher dann auf die Konsole geschrieben wird.