Methoden Sämtliche
Funktionalität ist in JAVA an Klassen und Objekte gebunden. "Eigenständige"
Prozeduren und Funktionen gibt es nicht. Innerhalb von Klassen wird die Funktionalität
mit Hilfe von Methoden realisiert. Methoden kann man nach verschiedenen Gesichtspunkten
klassifizieren. Hier sollen folgende Typen unterschieden werden:
- Konstruktoren
- Methoden mit und ohne Rückgabewert
- objektgebundene Methoden
- Klassenmethoden
Methoden ohne Rückgabewert entsprechen im
Prinzip den PASCAL-Prozeduren, Methoden mit Rückgabewert den
Pascal-Funktionen. Konstruktoren stellen eine Sonderform der Methoden mit
Rückgabewert dar. Konstruktoren werden anhand eines Beispiels weiter unten näher
erläutert. Dieses bezieht sich auf die Implementierung einer Klasse, für die eine
Beschreibung in einer programmiersprachenunabhängigen Form vorliegt.
Eine Methodendeklaration folgt dieser Syntax:
<Modifier> <Typ des Rückgabewertes>
<Methodenbezeichner> ( <Parameterliste>)
{
<Anweisungsfolge>
}
Beispiel 1:
private void halloWelt()
{
stift.schreibe("Hallo Welt");
}
Dies ist ein Beispiel für eine Methode ohne Rückgabewert, entsprechend
einer PASCAL Prozedur. Als Typ des Rückgabewertes gibt man in diesem Falle void ("nichts") an. Der Modifier sagt etwas über den
Nutzungsbereich der Methode an. Diese hier kann nur von einem Objekt der eigenen Klasse
benutzt werden (private-Deklaration). Die Parameterliste
bleibt leer, muß aber angegeben werden. Dies gilt auch für den Methodenaufruf:
meinObjekt.halloWelt();
Beispiel 2:
public int quadrat(int x)
{
return x*x;
}
Dies ist ein Beispiel für eine Methode mit Rückgabewert, und entspricht
soweit einer Funktionsprozedur in PASCAL. Als Typ des Rückgabewertes gibt man den
gewünschten Typ an, hier int. Es könnte aber auch jeder
andere Datentyp sein, natürlich auch eine Klasse. Der Modifier public
bedeutet in diesem Falle, daß die Methode auch von Objekten anderer Klassen benutzt
werden kann. Präziser formuliert: Objekte andere Klassen können einem Objekt der
gegebene Klasse die Anfrage quadrat schicken. Während in
PASCAL der Rückgabewert dem Bezeichner der Funktion zugewiesen wird, wird hier der hinter
return stehende Ausdruck ausgewertet und als Rückgabewert
benutzt. Anweisungen, die nach return auszuführen wären,
werden nicht mehr ausgeführt!. Sind diese unerreichbar, so gibt der Compiler eine
Fehlermeldung aus:
Beispiel:
public int quadrat(int x)
{
return x*x;
stift.schreibe("Quadrat berechnet!");
/* unzulässig, da nicht erreichbar! */
}
Korrekt ist dagegen:
public double max(double x, double y)
{
if (x < y)
{
return y;
}
else
{
return x;
}
}
|