Java Reference
In-Depth Information
1 int laufe(int anzahl) {
2
int schritte = 0;
while (vornFrei() && (anzahl > 0)) {
3
vor();
4
anzahl--;
5
schritte++;
6
}
7
return schritte;
8
9 }
10
11 boolean laufe(int anzahl) {
12
linksUm();
linksUm();
13
while (vornFrei() && (anzahl > 0)) {
14
vor();
15
anzahl--;
16
}
17
linksUm();
18
linksUm();
19
return (anzahl <= 0);
20
21 }
22
23 void main() {
24
int ergebnis1
= laufe(2);
boolean ergebnis2 = laufe(3);
25
laufe(4);
26
27 }
In diesem Beispiel unterscheiden sich zwar die Typen der beiden Funktionen laufe , nicht aber ihre
Parameterlisten. Letzteres ist jedoch unbedingt erforderlich. Einen Grund hierfür sehen Sie in Zeile
26. Hier wird die Funktion laufe in Form einer Ausdrucksanweisung aufgerufen. Der Compiler
kann hier nicht entscheiden, welche der beiden laufe -Funktionen denn nun tatsächlich ausgeführt
werden soll.
Im Grunde genommen handelt es sich bei den vier Grundbefehlen des Hamsters vor , linksUm ,
gib und nimm auch um durch die Hamster-Sprache selbst vordefinierte Prozeduren und bei den
Testbefehlen vornFrei , kornDa und maulLeer um vordefinierte boolesche Funktionen. Auch diese
Prozeduren bzw. Funktionen und selbst die main-Prozedur dürfen überladen werden:
// Hauptprogramm
void main() {
main(vornFrei());
// Aufruf der ueberladenen main-Prozedur
}
// Ueberladen des Grundbefehls vor
void vor(int anzahl) {
while ((anzahl > 0) && vornFrei()) {
vor();
// Aufruf des Grundbefehls vor
anzahl--;
Search WWH ::




Custom Search