Der Standard-Hamster


Der Datentyp Hamster

Bisher hast du die Datentypen int (Integer) und boolean kennengelernt. Der Datentyp int liefert ganze Zahlen (… -2, -1, 0, 1, 2, …) und der Datentyp boolean repräsentiert die boolesche Werte true und false (vornFrei(), maulLeer(), kornDa()).

Der Hamster ist ein sogenannter Klassendatentyp. In diesem Kapitel werden wir nicht weiter in die Klassen eingehen. Mehr zu den Klassendatentypen findet ihr hier: http://www.java-hamster-modell.de/eBooks/hamster2.pdf , Kapitel 4.

 

Der blaue Standard-Hamster

Im objektorientierten Hamster-Modell wird zwischen dem Standard-Hamster und den erzeugten Hamstern unterschieden. Der Standard-Hamster ist in der Regel der blaue Hamster.

Damit du dem Standard-Hamster Befehle erteilen kannst, musst du zuerst einen Hamster deklarieren (Name vergeben) und diesen als den Standard-Hamster definieren:

Hamster name = Hamster.getStandardHamster();

Hamster laura = Hamster.getStandardHamster();

Somit wird dem Standard-Hamster (blaue Hamster) der Name laura zugeordnet.

 

Aufruf von Hamster-Befehlen im objektorientierten Hamster-Modell

Wie zuvor erwähnt, kennen alle Hamster die vier Grundbefehle vor(), nimm(), gib() und linksUm(), die booleschen Ausdrücke vornFrei(), maulLeer() und kornDa() und die eigenen Befehle.

Damit dein Programm weiß, welcher Hamster welchen Befehl ausführen soll,werden die Befehle mit dem Namen des Hamsters und eines trennenden Punktes (.) aufgerufen, bspw.:

name.Befehl();

laura.vor();

Achtung: In objektorientierten Programmen können die Befehle nur mit den Hamster-Namen aufgerufen werden, ansonsten liefert der Compiler eine Fehlermeldung! Ein Compiler wandelt Programmcode in einen maschinenlesbaren Code um.

 

Ein kleines Beispielprogramm:

Der Standard-Hamster läuft bis zur nächsten Wand und frisst auf jeder Kachel – falls vorhanden – ein Korn. Ist die Kachel leer, so legt der Hamster ein Korn auf diese Kachel.

 

void main() {

/*

Dem Standard -Hamster wird der Name laura zugeordnet und vor dem Starten des Programms über den „Körner im Maul“-Button 10 Körner mitgegeben.

*/

Hamster laura = Hamster.getStandardHamster();

/*

Laura, wenn ein Korn auf der Kachel liegt, heb ihn auf, sonst lege ein Korn auf die leere Kachel.

*/

if (laura.kornDa()) {

laura.nimm();

} else {

laura.gib();

}

/*

Laura gehe gerade aus, solange du kannst. Überprüfe, ob ein Korn auf der Kachel liegt, wenn ja, heb ihn auf, sonst lege ein Korn auf die leere Kachel.

*/

while (laura.vornFrei()) {

laura.vor();

if (laura.kornDa()) {

laura.nimm();

}else {

laura.gib();

}

  }

}