Eine Methode einer Klasse beschreibt eine Art Fähigkeit oder Aktion, die aufgerufen werden kann. In ihr stehen gebündelt diejenigen Anweisungen, die zum Zeitpunkt des Aufrufs ausgeführt werden sollen:
- Sie hat einen Namen, über den sie aufgerufen werden.
- Ihr können Parameter übergeben werden, mit denen dann innerhalb der Methode gearbeitet werden kann.
- Einen Rückgabewert, der quasi das Ergebnis der Methoden-Ausführung darstellt, ist auch immer anzugeben. Wird in der Methode nur gearbeitet, ohne dass etwas konkretes zurückgegeben werden soll, wird dies durch den Rückgabewert
void
(engl. leer) symbolisiert.
- Die Sichtbarkeit der Methode (meistens
public
, aber auch private
, protected
oder package private
), also ob sie von anderen Klassen aus zu sehen ist oder nicht, wird immer an erster Stelle angegeben.
- Danach folgt das optionale Keyword
static
, das angibt ob die Methode eine statische ist. Dazu mehr im Kurs.
Die Summe aller Methoden beschreibt, wenn man es so will, das, was eine Klasse kann, bzw. welche Funktionalität sie zur Verfügung stellt.
Ein Beispiel
Stell Dir vor, Du willst einen Taschenrechner entwickeln. Was soll der alles können? Zumindest die vier Grundrechenarten addieren, subtrahieren, multiplizieren und dividieren.
Das wären schon mal vier Beispiele für Methoden. Die Klasse könnte sinnvollerweise Taschenrechner heißen:
public class Taschenrechner {
public double dividiere(int dividend, int divisor) {
return dividend / divisor;
}
// etc.
}
Die Methode heißt
dividiere
.Sie nimmt zwei Parameter
dividend
und
divisor
, die im Innern zur Berechnung der Division beider Zahlen verwendet werden. Das Ergebnis dieser Berechnung, also der Rückgabewert ist vom Typ
double
. Die Sichtbarkeit ist mit
public
definiert, sie ist also von überall aus zu sehen.
Aber was würde hier passieren, wenn man durch 0 dividiert? Das ist bekanntlich nicht erlaubt und sollte zu einem
Fehler (engl. exception) führen:
public int dividiere(int dividend, int divisor) throws Exception {
if (zahl2 == 0) {
throws IllegalArgumentException(Die Divisieon durch 0…);
}
return dividend / divisor;
}
Der Methoden-Deklaration wurde ein
throws Exception
hinzugefügt, was so viel heißt wie: Bei der Ausführung dieser Methode kann es zu einer Ausnahme kommen. Dies kann der Fall sein, muss es aber nicht sein.