Artikel in Kurzform:
- Methodensignatur = Methodenname + Parameterliste
Falconbyte unterstüzen
Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.
Erklärung
Zunächst ein typisches Beispiel für eine Java-Methode:
public void calculate(int x, int y) {
// Code der Methode
}
Die Methodendeklaration umfasst den gesamten Kopf der Methode. Die Methodensignatur dagegen wird nach Oracle wie folgt bestimmt:
- Definition: Two of the components of a method declaration comprise the method signature—the method's name and the parameter types.
Also ist die Methodendefinition im obigen Beispiel calculate(int, int), das heißt der Name der Methode und die Parameterliste mit zwei ints.
Deshalb ist es auch zulässig, mehrere Methoden mit demselben Namen in einer Klasse zu deklarieren, solange die Parameterliste unterschiedlich ist. Man spricht dann von Methoden überladen:
public void calculate(int x, int y) {
// Signatur der Methode: calculate(int, int)
}
public void calculate(double x) {
// Signatur der Methode: calculate(double)
}
Rückgabetyp und Modifier spielen beim Auseinanderhalten von Methoden für den Compiler keine Rolle:
public void giveItToMe(String x, int y, boolean z){ // Fehler!
// Code der Methode
}
private int giveItToMe(String x, int y, boolean z) { //Fehler
// Code der Methode
}
Dieser Code lässt sich gerade darum nicht compilieren, da die beiden Methoden zwar unterschiedliche Zugriffsstufen und Rückgabetypen haben, aber eben diesselbe Signatur: giveItToMe(String, int, boolean).