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