1. Syntax der Methodendeklaration
Die Deklaration einer Methode in Java ähnelt einem Rezept in einem Kochbuch: Sie geben an, was die Methode zurückgibt (Typ), wie sie heißt, welche Zutaten (Parameter) benötigt werden, und schreiben das eigentliche Rezept (Methodenkörper).
Allgemeine Form:
return_type NameOfMethod(parameters)
{
// hier schreiben wir die Anweisungen
}
- Rückgabewerttyp – was die Methode zurückgibt (zum Beispiel int, void – wenn sie nichts zurückgibt, String usw.).
- Methodenname – ein von Ihnen gewählter Name (gemäß den Java-Regeln).
- Parameter – die Liste der Variablen, die die Methode verwendet (kann leer sein).
- Methodenkörper – Ihre Anweisungen in geschweiften Klammern { }.
Beispiele für Methoden ohne Parameter
void printHello()
{
System.out.println("Hallo, Welt!");
}
Erläuterung: void – die Methode gibt nichts zurück; printHello – der Name; () – keine Parameter.
Beispiel für eine Methode mit Parametern
void printName(String name)
{
System.out.println("Hallo, " + name + "!");
}
Erläuterung: void – kein Rückgabewert; printName – der Methodenname; String name – ein Parameter vom Typ String.
Beispiel für eine Methode mit mehreren Parametern
void printSum(int a, int b)
{
System.out.println("Summe: " + (a + b));
}
Erläuterung: Parameter werden durch Komma getrennt. Innerhalb der Methode verwenden wir sie wie gewöhnliche Variablen; der Operator + führt die Addition aus.
Wichtig!
- Methoden werden innerhalb einer Klasse deklariert, aber NICHT innerhalb anderer Methoden.
- In Java darf man keine Methoden innerhalb anderer Methoden deklarieren – keine „Matrjoschkas“.
2. Methodenaufruf
Eine Methode zu deklarieren ist, als würde man ein Schild „Ich mache Kaffee“ aufhängen. Damit tatsächlich Kaffee entsteht, muss man die Methode aufrufen – ihren Namen schreiben und Parameterwerte übergeben.
Wie ruft man eine Methode auf
Befindet sich die Methode in derselben Klasse und ist als static deklariert (wie main), kann man sie einfach über ihren Namen aufrufen:
printHello();
printName("Alice");
printSum(3, 5);
Ist die Methode nicht static, muss man sie über ein Objekt aufrufen (darauf kommen wir später zurück, wenn wir Klassen und Objekte behandeln).
Beispiel: Aufruf einer Methode aus main
public class MethodsDemo
{
public static void main(String[] args)
{
printHello();
printName("Bob");
printSum(10, 20);
}
static void printHello()
{
System.out.println("Hallo, Welt!");
}
static void printName(String name)
{
System.out.println("Hallo, " + name + "!");
}
static void printSum(int a, int b)
{
System.out.println("Summe: " + (a + b));
}
}
Beachten Sie: Die Methoden sind mit dem Modifikator static deklariert, damit sie aus main aufgerufen werden können (das ebenfalls static ist).
3. Parameter und Argumente: Was ist was?
Parameter sind Variablen, die in den Klammern bei der Deklaration der Methode stehen.
Argumente sind die tatsächlichen Werte, die Sie beim Aufruf der Methode übergeben.
Analogie: Parameter sind wie die Einkaufsliste; Argumente sind das, was Sie tatsächlich in den Einkaufswagen legen.
Beispiel
static void greet(String name) // name - Parameter
{
System.out.println("Hallo, " + name + "!");
}
public static void main(String[] args)
{
greet("Kate"); // "Kate" - Argument
greet("Bob"); // "Bob" - Argument
}
Wenn Sie greet("Kate") aufrufen, wird innerhalb der Methode die Variable name gleich "Kate".
Mehrere Parameter
static void printInfo(String name, int age)
{
System.out.println("Name: " + name + ", Alter: " + age);
}
public static void main(String[] args)
{
printInfo("Mary", 25);
printInfo("Peter", 31);
}
Achtung! Typen und Reihenfolge der Parameter müssen mit der Methodendeklaration übereinstimmen.
4. Praxis: eigene Methoden schreiben
Methode, die eine Begrüßung mit dem Benutzernamen ausgibt
static void sayHelloTo(String name)
{
System.out.println("Hallo, " + name + "!");
}
public static void main(String[] args)
{
sayHelloTo("Andrew");
sayHelloTo("Elvira");
}
Methode, die die Summe zweier Zahlen berechnet
static void printSum(int a, int b)
{
int sum = a + b;
System.out.println("Summe: " + sum);
}
public static void main(String[] args)
{
printSum(7, 8);
printSum(15, -5);
}
Methode, die die Elemente eines Arrays ausgibt
static void printArray(int[] array)
{
System.out.print("Array: ");
for (int i = 0; i < array.length; i++)
{
System.out.print(array[i] + " ");
}
System.out.println();
}
public static void main(String[] args)
{
int[] nums = {1, 2, 3, 4, 5};
printArray(nums);
}
Methode, die n-mal dieselbe Zeichenkette ausgibt
static void repeatPrint(String text, int n)
{
for (int i = 0; i < n; i++)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
repeatPrint("Java ist cool!", 3);
}
5. Wie Methoden beim Aufbau einer Anwendung helfen
Wenn Sie ein einfaches Konsolenspiel oder einen Rechner schreiben möchten, wird der Code verständlicher, wenn Sie jede Aufgabe als Methode kapseln.
Beispiel: Mini-Rechner
public class Calculator
{
public static void main(String[] args)
{
printGreeting();
printSum(3, 7);
printDifference(10, 4);
}
static void printGreeting()
{
System.out.println("Willkommen im Rechner!");
}
static void printSum(int a, int b)
{
System.out.println("Summe: " + (a + b));
}
static void printDifference(int a, int b)
{
System.out.println("Differenz: " + (a - b));
}
}
In Zukunft können Sie neue Methoden hinzufügen (Multiplikation, Division, Arbeit mit Zahlenarrays usw.), und die Anwendung wächst, ohne zu einer endlosen Code-Wand zu werden.
6. Nützliche Feinheiten
Methodennamen
- Ein Methodenname beginnt gewöhnlich mit einem Kleinbuchstaben und wird in camelCase geschrieben: printSum, sayHelloTo, calculateArea.
- Der Name sollte eine Handlung widerspiegeln. Vermeiden Sie doStuff und method1.
Parameterreihenfolge
- Halten Sie beim Aufruf Reihenfolge und Typen der Parameter ein.
- Wenn die Methode printInfo(String name, int age) erwartet, darf man printInfo(25, "Mary") nicht aufrufen.
Kann man zwei Methoden mit demselben Namen deklarieren?
Ja, wenn sie unterschiedliche Parameterlisten (unterschiedliche Typen oder Anzahl) haben. Das ist die Methodenüberladung:
static void printSum(int a, int b) { /* ... */ }
static void printSum(int a, int b, int c) { /* ... */ }
Diesem Thema wird eine eigene Vorlesung gewidmet – fürs Erste reicht es zu wissen, dass Java nicht auf eine Methode pro Name beschränkt.
7. Typische Fehler beim Arbeiten mit Methoden und Parametern
Fehler Nr. 1: Anzahl oder Typen der Parameter stimmen beim Aufruf nicht überein.
Wenn die Methode als printSum(int a, int b) deklariert ist und Sie sie als printSum(5) aufrufen, meldet der Compiler, dass es eine solche Methode nicht gibt. Analog gilt: printSum("fünf", 7) – ein Typfehler.
Fehler Nr. 2: Parameter und Argumente werden verwechselt.
Bei der Deklaration stehen die Parameter (zum Beispiel int a, int b), beim Aufruf die Argumente (printSum(5, 7)). Sie müssen in main keine Variablen mit denselben Namen anlegen – wichtiger sind Übereinstimmung von Typen und Reihenfolge.
Fehler Nr. 3: Versuch, eine Methode innerhalb einer Methode zu deklarieren.
In Java werden Methoden nur auf Klassenebene deklariert. Innerhalb einer anderen Methode darf man sie nicht deklarieren.
Fehler Nr. 4: static wird beim Aufruf aus main nicht verwendet.
Wenn Sie eine Methode aus main aufrufen, fügen Sie der Deklaration static hinzu oder erzeugen Sie ein Objekt und rufen die Methode darauf auf. Details – später, wenn wir OOP behandeln.
GO TO FULL VERSION