|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectHamster
public class Hamster
Mit Hilfe dieser Klasse (sowie den anderen Klassen dieses Paketes) wird eine Verbindung zwischen BlueJ und dem Java-Hamster-Modell geschaffen.
BlueJ ist eine Entwicklungsumgebung für objektorientierte Java-Programme, die sich speziell an Bedürfnissen von Programmieranfängern orientiert. Im Vordergrund steht die visuelle Modellierung von Programmen mit Hilfe von Diagrammen. Weitere Infos unter www. bluej.org. Das Java-Hamster-Modell ist ein spezielles didaktisches Modell, das Programmieranfängern einen spielerischen Zugangzu der doch eher technischen Welt der Programmierung bietet. Programmieranfänger lernen die grundlegenden Programmierkonzepte und den Programmentwurf kennen, indem sie Programme entwickeln, mit denen sie virtuelle Hamster durch eine virtuelle Landschaft steuern und bestimmte Aufgaben bzw. Probleme lösen lassen. Im Vordergrund steht die Visualisierung der Ausführung eines Programms. Dazu gibt es den so genannten Hamster-Simulator, der es ermöglicht, Hamster-Programme zu entwickeln und auszuführen, wobei man die Hamster bei der Erledigung ihrer Aufgaben mit Hilfe einer graphischen Umgebung beobachten kann. Aktuell besteht das Java-Hamster-Modell aus zwei Teilen. Im ersten Teil geht es um die imperative Programmierung, im zweiten Teil um die objektorientierte Programmierung. Relevant für dieses Paket ist der zweite Teil. Weitere Infos unter www.java-hamster-modell.de. Mit Hilfe der vorliegenden Klasse Hamster bzw. allen Klassen dieses Paketes ist es nun möglich, Hamster-Programme mit BlueJ zu entwickeln und mit dem Hamster-Simulator auszuführen. Konkret bedeutet das, BlueJ visualisiert die Programmentwicklung und der Hamster-Simulator visualisiert die Programmausführung. Grundlage des Paketes sind die Klassen des objektorientierten Hamster-Modells (siehe auch Anhang des Buches "Objektorientierte Programmierung spielend gelernt mit dem Java-Hamster-Modell"). Im Vordergrund steht hier die vorliegende Klasse Hamster. Sie ermöglicht die Erzeugung von Hamstern in einem so genannten Hamster-Territorium (siehe auch Klasse Territorium). Das Hamster-Territorium ist dabei eine rechteckige Landschaft, die aus einzelnen Kacheln besteht. Auf den Kacheln können die Hamster stehen, auf Kacheln können ein oder mehrere Körner liegen, Kacheln können auch durch Mauern blockiert sein. Die Hamster nehmen eine bestimmte Blickrichtung ein und können Körner im Maul haben. Mit Hilfe bestimmter Grundbefehle können Hamster durch das Territorium gesteuert werden. Durch Ausführung der Methode "vor" springen sie eine Kachel in Blickrichtung nach vorne. Mit "linksUm" drehen sie sich linksum. Die Methode "nimm" dient zum Aufnehmen eines Korns von der aktuellen Kachel ins Maul eines Hamsters. Mit "nimm" kann ein Korn abgelegt werden. Damit es nicht zu bestimmten Laufzeitfehlern kommt, existieren drei Testmethoden. "vornFrei" überprüft, ob sich vor dem Hamster eine Mauer befindet, "maulLeer" überprüft, ob sich Körner im Maul des Hamsters befinden und "kornDa" überprüft, ob auf der aktuellen Kachel des Hamsters mindestens ein Korn liegt. Zur Kommunikation mit dem Nutzer eines Hamster-Programms gibt es die Methoden "schreib", "liesZeichenkette" und "liesZahl", mit denen ein Hamster Informationen auf den Bildschirm ausgeben bzw. vom Benutzer abfragen kann. Prinzipiell können beliebig viele Hamster erzeugt werden. Der Standard-Hamster ist ein Hamster, der automatisch im Territorium vorhanden ist. Er kann mit der statischen Methode "getStandardHamster" ermittelt werden.
Nested Class Summary | |
---|---|
(package private) static class |
Hamster.ArrayListIntern
|
(package private) static class |
Hamster.SimulationModelIntern
|
Field Summary | |
---|---|
(package private) static ArrayList |
_intern_hamsters
|
(package private) static LogPanel |
_intern_logPanel
|
(package private) static SimulationModel |
_intern_simulationModel
|
static int |
NORD
Blickrichtung Nord |
static int |
OST
Blickrichtung Ost |
static int |
SUED
Blickrichtung Sued |
static int |
WEST
Blickrichtung West |
Constructor Summary | |
---|---|
Hamster()
Konstruktor zum Erzeugen eines nicht initialisierten Hamsters |
|
Hamster(Hamster hamster)
Konstruktor zum Erzeugen und Initialisieren eines Hamsters mit den Werten eines bereis existierenden Hamsters |
|
Hamster(int reihe,
int spalte,
int blickrichtung,
int anzahlKoerner)
Konstruktor zum Erzeugen und Initialisieren eines Hamsters mit den uebergebenen Parametern |
Method Summary | |
---|---|
Object |
clone()
Methode, die einen Klon des aufgerufenen Hamsters erzeugt und liefert, d.h. die Werte der Attribute des neuen Hamsters sind identisch zu den Werten des aufgerufenen Hamsters. |
boolean |
equals(Object hamster)
Methode, die ueberprueft, ob die Werte der Attribute des aufgerufenen Hamsters gleich der Attributwerte des uebergebenen Hamsters sind (zwei nicht initialisierte Hamster sind auch gleich) (ueberschreibt die entsprechende von der Klasse Object geerbte Methode) |
static int |
getAnzahlHamster()
liefert die Gesamtzahl an erzeugten und initialisierten Hamstern im Territorium (inkl. dem Standard-Hamster) |
int |
getAnzahlKoerner()
liefert die Anzahl der Koerner, die der aufgerufene Hamster gerade im Maul hat |
int |
getBlickrichtung()
liefert die Blickrichtung, in die der aufgerufene Hamster gerade schaut (die gelieferten Werte entsprechen den obigen Konstanten) |
int |
getReihe()
liefert die Reihe der Kachel des Territoriums, auf der sich der aufgerufene Hamster gerade befindet |
int |
getSpalte()
liefert die Spalte der Kachel des Territoriums, auf der sich der aufgerufene Hamster gerade befindet |
static Hamster |
getStandardHamster()
liefert den Standard-Hamster, das ist der Hamster, der sich standardmaessig im Territorium befindet, ohne explizit erzeugt werden zu muessen |
void |
gib()
Der aufgerufene Hamster legt ein Korn auf der Kachel ab, auf der er sich gerade befindet. |
void |
init(int reihe,
int spalte,
int blickrichtung,
int anzahlKoerner)
Methode zum Initialisieren eines noch nicht initialsierten Hamsters. |
boolean |
kornDa()
liefert genau dann true, wenn auf der Kachel, auf der sich der aufgerufene Hamster gerade befindet, mindestens ein Korn liegt |
int |
liesZahl(String aufforderung)
gibt den uebergebenen String auf den Bildschirm aus und fordert den Benutzer auf, eine Zahl einzugeben; die eingegebene Zahl wird als Wert geliefert (wenn der Benutzer eine ungueltige Zahl eingibt, wird der Wert 0 geliefert) |
String |
liesZeichenkette(String aufforderung)
gibt den uebergebenen String auf den Bildschirm aus und fordert den Benutzer auf, einen String einzugeben; der eingegebene String wird als Wert geliefert |
void |
linksUm()
Der aufgerufene Hamster dreht sich linksum. |
void |
loeschen()
Der aufgerufene Hamster wird geloescht, d.h. er wird vom Bildschirm entfernt und seine Initialisierung wird rueckgaengig gemacht. |
boolean |
maulLeer()
liefert genau dann true, wenn der aufgerufene Hamster keine Koerner im Maul hat |
void |
nimm()
Der aufgerufene Hamster frisst ein Korn auf der Kachel, auf der er sich gerade befindet. |
void |
schreib(String zeichenkette)
gibt den uebergebenen String (in einer Dialogbox) auf den Bildschirm aus |
String |
toString()
Methode, die eine String-Repraesentation der folgenden Art fuer den aufgerufenen Hamster liefert: "Hamster steht auf Kachel (0/0) mit Blickrichtung OST und 2 Koernern im Maul" Wenn der aufgerufene Hamster noch nicht initialisiert ist, wird folgender String geliefert: "Hamster ist nicht initialisiert" (ueberschreibt die entsprechende von der Klasse Object geerbte Methode) |
void |
vor()
Der aufgerufene Hamster springt auf die in Blickrichtung vor ihm liegende Kachel. |
boolean |
vornFrei()
liefert genau dann true, wenn sich in Blickrichtung vor dem aufgerufenen Hamster keine Mauer befindet (wenn sich der Hamster in Blickrichtung am Rand des Territoriums befindet, wird false geliefert) |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
static ArrayList _intern_hamsters
static LogPanel _intern_logPanel
static SimulationModel _intern_simulationModel
public static final int NORD
public static final int OST
public static final int SUED
public static final int WEST
Constructor Detail |
---|
public Hamster()
public Hamster(Hamster hamster)
hamster
- ein bereits existierender Hamsterpublic Hamster(int reihe, int spalte, int blickrichtung, int anzahlKoerner) throws HamsterInitialisierungsException
reihe
- die Reihe des Territoriums, in der der Hamster erzeugt wirdspalte
- die Spalte des Territoriums, in der der Hamster erzeugt wirdblickrichtung
- die Richtung, in der der Hamster anfangs schaut (siehe
Konstanten)anzahlKoerner
- die Anzahl an Koernern, die der Hamster anfangs im Maul hat
HamsterInitialisierungsException
- wird geworfen, wenn: (a) eine Kachel (reihe/spalte) nicht
existiert (b) die Kachel (reihe/spalte) durch eine Mauer
blockiert ist (c) der Wert von blickrichtung nicht zwischen 0
und 3 liegt (d) der Wert von anzahlKoerner < 0 istMethod Detail |
---|
public Object clone()
clone
in class Object
Object.clone()
public boolean equals(Object hamster)
equals
in class Object
hamster
- muss ein Objekt der Klasse Hamster oder einer davon
abgeleiteten Klasse seinObject.equals(java.lang.Object)
public static int getAnzahlHamster()
public int getAnzahlKoerner() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden istpublic int getBlickrichtung() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden istpublic int getReihe() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch // nicht initialisiert
worden istpublic int getSpalte() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden istpublic static Hamster getStandardHamster()
public void gib() throws HamsterNichtInitialisiertException, MaulLeerException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden ist
MaulLeerException
- wird geworfen, wenn der Hamster keine Koerner im Maul hatpublic void init(int reihe, int spalte, int blickrichtung, int anzahlKoerner) throws HamsterInitialisierungsException
reihe
- die Reihe des Territoriums, in der der Hamster erzeugt wirdspalte
- die Spalte des Territoriums, in der der Hamster erzeugt wirdblickrichtung
- die Richtung, in der der Hamster anfangs schaut (siehe
Konstanten)anzahlKoerner
- die Anzahl an Koernern, die der Hamster anfangs im Maul hat
HamsterInitialisierungsException
- wird geworfen, wenn: (a) eine Kachel (reihe/spalte) nicht
existiert (b) die Kachel (reihe/spalte) durch eine Mauer
blockiert ist (c) der Wert von blickrichtung nicht zwischen 0
und 3 liegt (d) der Wert von anzahlKoerner < 0 istpublic boolean kornDa() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
public int liesZahl(String aufforderung) throws HamsterNichtInitialisiertException
aufforderung
- der auszugebende String
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch // nicht initialisiert
worden istpublic String liesZeichenkette(String aufforderung) throws HamsterNichtInitialisiertException
aufforderung
- der auszugebende String
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden istpublic void linksUm() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden istpublic void loeschen()
public boolean maulLeer() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden istpublic void nimm() throws HamsterNichtInitialisiertException, KachelLeerException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden ist
KachelLeerException
- wird geworfen, wenn auf der Kachel, auf der sich der Hamster
gerade befindet, kein Korn liegtpublic void schreib(String zeichenkette) throws HamsterNichtInitialisiertException
zeichenkette
- der auszugebende String
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden istpublic String toString()
toString
in class Object
Object.toString()
public void vor() throws HamsterNichtInitialisiertException, MauerDaException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden ist
MauerDaException
- wird geworfen, wenn die Kachel in Blickrichtung vor dem
Hamster durch eine Mauer blockiert ist oder der Hamster in
Blickrichtung am Rand des Territoriums stehtpublic boolean vornFrei() throws HamsterNichtInitialisiertException
HamsterNichtInitialisiertException
- wird geworfen, wenn der Hamster noch nicht initialisiert
worden ist
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |