Programmierkurs Java Teil Objektorientierte Programmierung Unterrichtseinheit 20 (Hamster-) Objekte Dr. Dietrich Boles Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 1 Gliederung ¾ Imperatives Java-Hamster-Modell ¾ Objektorientiertes Java-Hamster-Model ¾ Hamster-Objekte ¾ Standard-Hamster ¾ Hamster-Befehle ¾ Objektorientierte Hamster-Programme ¾ Neue Hamster-Befehle ¾ Bezug zur Objektorientierten Programmierung Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 2 Imperatives Java-Hamster-Modell Imperatives Hamster-Modell (Charakteristika): ¾ einzelner Hamster Æ Standard-Hamster ¾ Hamster ist namenlos ¾ Hamster ist immer da ¾ 4 Grundbefehle und 3 Testbefehle ¾ 4 Eigenschaften (Attribute) (Æ Zustand): ¾ Reihe der Kachel ¾ Spalte der Kachel ¾ Blickrichtung ¾ Anzahl Körner im Maul ¾ Hamster-Programm: Aufruf von Funktionen (Befehlen) Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 3 Objektorientiertes Java-Hamster-Modell (1) Objektorientiertes Hamster-Modell (Charakteristika): ¾ Standard-Hamster existiert weiterhin ¾ Erzeugung weiterer Hamster möglich ¾ Jeder Hamster kennt die 4 Grundbefehle und 3 Testbefehle ¾ Es kommen einige neue Befehle hinzu ¾ Auf einer Kachel können mehrere Hamster stehen ¾ Jeder Hamster besitzt die 4 Attribute ¾ Jeder Hamster hat einen (oder mehrere) Namen ¾ Wenn ein Hamster einen Fehler macht, sterben alle (Æ Programmabbruch) ¾ OO-Hamster-Programm: Aufruf von Funktionen für Hamster Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 4 Objektorientiertes Java-Hamster-Modell (2) Objektorientiertes Hamster-Modell (Voraussetzungen): ¾ Zuordnung von Namen zu Hamstern ¾ Anweisung zur Erzeugung von Hamstern ¾ Notation, welcher Hamster einen bestimmten Befehl ausführen soll ¾ Koordinatensystem für das Territorium 0 1 2 7 0 neuer Hamster Reihe: 0 Spalte: 6 Blickrichtung: SUED Körner: y Standard-Hamster (blau)1 Reihe: 1 Spalte: 1 Blickrichtung: OST Körner: x 4 Reihe Programmierkurs Java Spalte UE 20 (Hamster-) Objekte Dietrich Boles Seite 5 Hamster-Objekte Erzeugung neuer Hamster: Hamster paul = new Hamster(0, 6, Hamster.SUED, 8); Name (Bezeichner) Reihe (int) Körneranzahl (int) Spalte (int) Blickrichtung (int) Hamster.NORD (= 0) Hamster.OST (= 1) Hamster.SUED (= 2) Hamster.WEST (= 3) Mögliche Laufzeitfehler: ¾ ungültige oder mit Mauern besetzte Kachel ¾ ungültige Blickrichtung ¾ negative Körneranzahl Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 6 Standard-Hamster Zuordnung eines Namens an den Standard-Hamster: Hamster willi = Hamster.getStandardHamster(); Name (Bezeichner) Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 7 Befehle Aufruf von Hamster-Befehlen: <name>.<befehl> Beispiele: Hamster paul = Hamster.getStandardHamster(); if (paul.vornFrei()) paul.vor(); Hamster willi = new Hamster(0, 2, Hamster.OST, 2); while (!willi.maulLeer()) willi.gib(); Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 8 OO-Hamster-Programme Objektorientiertes Hamster-Programm: void main() { Hamster paul = Hamster.getStandardHamster(); while (paul.vornFrei()) { paul.vor(); if (paul.kornDa()) { paul.nimm(); } } Demo } Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 9 Neue Befehle (1) Zusätzliche Hamster-Befehle: ¾ int getReihe() ¾ int getSpalte() ¾ int getBlickrichtung() ¾ int getAnzahlKoerner() ¾ void schreib(String nachricht) ¾ String liesZeichenkette(String aufforderung) ¾ int liesZahl(String aufforderung) Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 10 Neue Befehle (2) void main() { Hamster paul = Hamster.getStandardHamster(); Hamster willi = new Hamster(paul.getReihe() + 1, paul.getSpalte(), Hamster.OST, 0); int schritte = paul.liesZahl("Anzahl an Schritten?"); while (schritte>0 && paul.vornFrei() && willi.vornFrei()) { paul.vor(); willi.vor(); schritte--; } willi.schreib("Fertig!"); Demo } Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 11 Bezug zur Objektorientierten Programmierung ¾ Hamster sind Objekte einer (vordefinierten) Klasse Hamster ¾ Eine Klasse ist quasi ein Bauplan für gleichartige Dinge (Objekte) ¾ Von einer Klasse können Objekte erzeugt werden ¾ Eine Klasse definiert (intern) Variablen (Attribute), die jedes Objekt besitzt und die seinen Zustand repräsentieren ¾ Eine Klasse definiert Funktionen (Methoden), die für Objekte der Klasse aufgerufen werden können ¾ Der Methodenaufruf erfolgt via der Punktnotation über Namen (Objektvariablen), die einem Objekt zugeordnet werden können ¾ Eine Klasse definiert einen neuen Typ ¾ OO-Programme: Aufruf von Methoden für/von Objekten Programmierkurs Java UE 20 (Hamster-) Objekte Dietrich Boles Seite 12