Kapitel 4: Methoden

Aus ComeniusWiki
Wechseln zu: Navigation, Suche

Zur Startseite - Kapitel 1 - Kapitel 2 - Kapitel 3


Programme sind in der Praxis viel zu groß, um in einem einzigen Stück geschrieben zu werden. Daher zerlegt man sie in kleinere Anweisungsfolgen, die logisch zusammengehören und eine bestimmte Teilaufgabe erledigen. Diesen Anweisungsfolgen gibt man einen Namen und kann sie dann beliebig oft unter diesem Namen aufrufen. Man nennt solche benannten Anweisungsfolgen Methoden.

Inhaltsverzeichnis

Parameterlose Methoden

In ihrer einfachsten Form haben Methoden keine Parameter, sondern nur einen Namen. Als Beispiel soll eine bereits bekannte Methode dienen

public void zahlenBisHundertAddieren(){
int i=1;
int sum=0;
while(i<=100){sum=sum+i; i++;};
System.out.println("Die Summe der Zahlen 1 bis 100 ist "+sum);
}


Die Deklaration einer Methode besteht aus einem Kopf (header) und einem Rumpf (body). Der Kopf einer parameterlosen Methode ist nach folgendem Schema aufgebaut:

Zugriffsrecht void Bezeichner ()

Für das Zugriffsrecht gelten dieselben Regeln wie für die Variablen (public, private). Das Schlüsselwort void für den Ergebnistyp gibt an, dass es sich um eine Methode ohne Rückgabewert handelt. Die leeren Klammern nach dem Bezeichner zeigen an, dass wir zur Ausführung der Methode keine Eingabeparameter benötigen. Alle bisher geschriebenen Methoden waren Methoden dieses Typs.

Namenskonvention für Methoden

Methoden können wie Variablen beliebige Namen tragen. Aus Lesbarkeitsgründen sollte der Name einer Methode aber ausdrücken, was die Methode leistet (z.B. unsichtbarMachen). Er sollte daher ein Verb enthalten. Methodennamen werden in JAVA üblicherweise klein geschrieben. Falls sie aus mehreren Worten bestehen, sollten die Folgeworte mit Großbuchstaben beginnen.

Der Rumpf in unserem Beispiel enthält zwei Variablendeklarationen einschließlich Initialisierung, eine while-Schleife und den Aufruf einer weiteren Methode, die die Ausgabe des Ergebnisses übernimmt. Im Rumpf einer Methode können also weitere Methoden aufgerufen werden, die bestimmte Teilaufgaben erledigen.


Methoden mit Parametern

Parameter sind Werte, die an eine Methode übergeben werden, damit diese sie in ihren Berechnungen verwenden kann. Als Beispiel formen wir obige Methode so um, dass wir die Obergrenze für die Aufsummierung der Zahlen als Parameter angeben können:

public void zahlenAddieren(int a){
int i=1;
int sum=0;
while(i<=a){sum=sum+i; i++;};
System.out.println("Die Summe der Zahlen 1 bis "+a+" ist "+sum);
}

Die Methode zahlenAddieren hat einen Parameter, der beim Aufruf der Methode übergeben werden muss. Ein Parameter hat die Form Datentyp Bezeichner (z.B. int durchmesser). Mehrere Parameter werden durch Kommas getrennt (z.B. (int x, int y)). Wird eine Methode mit Parameter(n) in BlueJ aufgerufen, erscheint eine Eingabeaufforderung, in der der jeweilige Parameterwert eingegeben werden kann. In diesem Fall können wir uns die Verwendung des Scanners für die Dateneingabe sparen.


Aufgaben 4.1.

Methoden mit Rückgabewert

Häufig verwenden wir eine Methode so, dass sie uns einen Wert zurückgibt, den wir für weitere Berechnungen verwenden. Eine solche Methode enthält als Ergebnistyp den Datentyp des Rückgabewertes. Beispiel:

public double umfang(double durchmesser) {
double u=durchmesser*Math.PI;
return u;
}

oder kürzer

public double umfang(double durchmesser) {
return durchmesser*Math.PI;
}

Diese Methode hat den Ergebnistyp double (da PI ebenfalls vom Typ double ist). Im Rumpf wird der Umfang mit der Formel durchmesser * PI berechnet. Das Schlüsselwort return bedeutet, dass die Methode hier beendet wird und der berechnete Wert an den Rufer zurückgegeben wird. Eine Methode kann mit return nur einen einzigen Wert zurückgeben. Wir haben Methoden mit Rückgabewert bereits mehrfach kennengelernt. Immer wenn wir z.B. auf eine Methode aus dem Package java.lang.Math zurückgreifen, rufen wir eine Methode auf, die uns einen Wert zurückliefert. Wir vergeben sozusagen den Auftrag für die Berechnung an eine andere Methode.

Bildhaft können wir uns eine solche Methode mit Rückgabewert vorstellen wie eine Frage nach dem Preis eines Einkaufs in einem Laden. Wir richten eine Anfrage an die Verkäuferin ("Was macht das?") und bekommen das Ergebnis ihrer Berechnung zurückgeliefert. Dieser Gesamtpreis ist das Ergebnis einer einfachen Addition der Warenpreise, die jedesmal erfolgt, wenn ein Kunde sich nach dem zu zahlenden Betrag erkundigt.

Ausgaben in Methoden

Häufig wollen wir Informationen oder das Ergebnis von Berechnungen ausgeben. Wir können diese auf der BlueJ-Konsole betrachten. Beispiel:

public void umfangAusgeben(double durchmesser){
   System.out.println("----------------------------------------------");
   System.out.println();
   System.out.println("Umfang = "+ durchmesser*Math.PI);
   System.out.println();
   System.out.println("----------------------------------------------");
}

Die Anweisung System.out.prinln bewirkt die Ausgabe des darauffolgenden Ausdrucks in Klammern auf der BlueJ-Konsole. Innerhalb der Anführungszeichen haben wir eine konstante Zeichenkette. Mit Hilfe des +-Operators können wir Zeichenketten zusammensetzen. Die Verwendung von System.out.println(); führt zu einer Leerzeile. Wir können in der Methode auch alternativ die oben angegebene Methode mit Rückgabewert verwenden:

public void umfangAusgeben(double durchmesser){
   System.out.println("----------------------------------------------");
   System.out.println();
   System.out.println("Umfang = "+ umfang(durchmesser));
   System.out.println();
   System.out.println("----------------------------------------------");
}

Dadurch wird der Auftrag zur Berechnung des Kreisumfang an eine andere Methode vergeben, die das Ergebnis zurückliefert:


MethodenMitRueckgabewert.JPG


Aufgaben 4.2.


Lernzielkontrolle Info10 - 3