Kapitel 5 Zustand eines Objekts

Ähnliche Dokumente
Kapitel 4 Einfache Methoden der Klasse MAMPFI

Kapitel 10 Mampfi im Labyrinth

Kapitel 11 Objektkommunikation mit Antworten

Kapitel 7 Schnittstelle als Außenansicht eines Objekts Seite 1 / 9

Kapitel 9 Das Labyrinth

Kapitel 17 Monster als neue Spielfiguren

Kapitel 12 Die Monster Lernziele: In diesem Kapitel wird die Vererbung als zentrales Element objektorientierter Programmierung vorgestellt.

Peter Brichzin. OOM und OOP. Didaktische Hinweise zum Informatikunterricht der Jahrgangsstufe 10

Kapitel 6 Punkteliste Lernziele: Deklaration, Initialisierung, Felder, Wiederholung mit fester Anzahl

Peter Brichzin. OOM und OOP. Didaktische Hinweise zum Informatikunterricht der Jahrgangsstufe 10

Kapitel 14 Das Labyrinth optimieren

Kapitel 18 Jetzt kommt Bewegung ins Spiel

Grundwissen Natur und Technik Informatik Klasse 6/7

Kapitel 15 Eine Spielsteuerung als Spielleiter

Javakurs für Anfänger

Entscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

3. Bedingte Anweisungen

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

1 Grundlagen der Objektorientierung

1 Karol stellt sich vor

Ideen und Konzepte der Informatik

Elementare Konzepte von

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

4.4 Imperative Algorithmen Prozeduren

5. Einführung in die Algorithmik

Programmieren I. Kapitel 5. Kontrollfluss

Luisenburg-Gymnasium Wunsiedel

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

4.4 Imperative Algorithmen Verzweigung und Iteration

Attributbasierende Symbolik Tipps & Tricks

4. Modellieren und Diagrammarten

Einstieg in die Informatik mit Java

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

Javakurs für Anfänger

Fortgeschrittene JSF- Techniken. Ralf Gitzel

Kapitel 2: Programmfluss steuern

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Tag 2 Repetitorium Informatik (Java)

Einführung in die Programmierung mit BlueJ

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

JAVA - Methoden - Rekursion

Einstieg in die Informatik mit Java

Kapitel 3 Die erste Klasse selbst erstellen: MAMPFI

Grundlagen. Übungen. Klassen, Attribute, Assoziationen, Methoden. Grundlagen_Klassen_Attribute_Assoziationen_Methoden.odt. Christine Janischek

Kontrollstrukturen -- Schleifen und Wiederholungen

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Kapitel 12 Dokumentation und Zugriffsrechte

Am Anfang werden die Attribute deklariert public class Kreis {

Einstieg in die Informatik mit Java

Prozeduren vs. Funktionen

Umsetzung einer Klassenkarte in einer Programmiersprache

Objekte und Klassen. Einführung der Begriffe Objekt und Attribut

Einstieg in die Informatik mit Java

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

Parameterübergabemechanismen für den Methodenaufruf

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Intensivübung zu Algorithmen und Datenstrukturen

Kapitel 4. Kontrollstrukturen

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Das aktuelle Objekt der Klasse AMPEL gibt an die Objekte gruen, gelb und rot der Klasse LAMPE die Botschaft, die Methode aus() aufzurufen.

Java: Eine kurze Einführung an Beispielen

Einführung in die Programmierung II. 3. Kontrollstrukturen

Arbeitsblätter für Algorithmierung und Strukturierung

Einstieg in die Informatik mit Java

Kapitel 2 Objekte in der Entwicklungsumgebung BlueJ

Einfache Bedingte Ausführung

Java: Syntax-Grundlagen III

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

2 Teil 2: Nassi-Schneiderman

Algorithmen und Datenstrukturen (für ET/IT)

Kapitel 4. Kontrollstrukturen

6. Funktionen, Parameterübergabe

Informatik I: Einführung in die Programmierung

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Java Anweisungen und Ablaufsteuerung

3. Das erste eigene Programm mit Greenfoot: Litte Crab

Programmstrukturen und Struktogramme

Informatik I. 19. Schleifen und Iteration für verlinkte Listen. Jan-Georg Smaus. Albert-Ludwigs-Universität Freiburg. 27.

Einführung in die Informatik Iterations

Übungspaket 10 Fallunterscheidungen

Informatik Abitur Bayern 2017 / II - Lösung

1. Die rekursive Datenstruktur Liste

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Einstieg in die Informatik mit Java

Abschnitt 5. Grundlagen der funktionalen & imperativen Programmierung

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Schleifen in C/C++/Java

Kapitel 3: Variablen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Korrektheit und Hoare-Kalkül für Imperative Programme

Transkript:

Kapitel 5 Zustand eines Objekts Seite 1 / 6 Kapitel 5 Zustand eines Objekts Lernziel: Bedingte Anweisung in Java Objektzustand 5.1 Unverwundbar soll sichtbar sein Die Methode VerwundbarSetzen sorgt dafür, dass der Attributwert von verwundbar entsprechend der Eingabe gesetzt wird. Aber bei der graphischen Darstellung von mampfi ist nicht sichtbar, ob er verwundbar oder unverwundbar ist. Dies soll sich ändern. Wenn mampfi unverwundbar wird, soll die Farbe seines Symbols wechseln, z. B. auf rot. Aufgabe 5.1 Versuche in Worten zu formulieren, wie sich die Anweisungsfolge im Methodenrumpf von VerwundbarSetzen ändern muss! Abhängig vom Eingabewert der Methode VerwundbarSetzen muss der Wert der Farbe der symbol entweder auf gelb oder auf rot gesetzt werden. In Worten formuliert wenn der Eingabewert verwundbarneu true ist dann setze den Wert des Attributs der Farbe der symbol auf gelb sonst setze den Wert des Attributs der Farbe der symbol auf rot Die Struktur dieser Anweisung ist dir von Robot Karol bekannt, es handelt sich um eine bedingte Anweisung. Ist die Bedingung erfüllt, so werden die Anweisungen im dann-teil ausgeführt. Ist die Bedingung nicht erfüllt, so werden die Anweisungen im sonst-teil ausgeführt. Im Folgenden ist einerseits die Syntax 1 der bedingten Anweisung in der Sprache von Robot Karol und andererseits das zugehörige Struktogramm abgebildet. 2 wenn <Bedingung> <Sequenz1> sonst <Sequenz2> *wenn Bedingung true false Sequenz1 Sequenz2 Abbildung 1: Bedingte Anweisung in der Sprache von Robot Karol Abbildung 2: Struktogramm einer bedingten Anweisung 1 griechisch: Satzbau; Muster und Regeln nach denen Wörtern zu Sätzen zusammengestellt werden 2 Solltest du dich nicht so genau daran erinnern, ist es hilfreich nochmals ein Karol-Programm mit einer bedingten Anweisung anzusehen. In der Menüzeile kann man mit Struktogramm--> Ansehen sich zu jedem korrekten Programm das zugehörige Struktogramm anzeigen lassen.

Kapitel 5 Zustand eines Objekts Seite 2 / 6 In Java sieht die Umsetzung wie folgt aus: if (Bedingung) //dann-teil else //sonst-teil if (verwundbar == true) symbol.farbesetzen("gelb"); else symbol.farbesetzen("rot"); Abbildung 3: bedingte Anweisung in Java allgemein und am Beispiel innerhalb der Methode VerwundbarSetzen Hinweise: - In der bedingten Anweisung kann der sonst-teil auch weggelassen werden. Bedingte Anweisungen können auch geschachtelt Bedeutung werden. Vergleichsoperator - Eine Bedingung ist in Java ein beliebiger Ausdruck, der bei ungleich seiner Auswertung!= nur den Wert true oder gleich false ergeben == kann. Zur Formulierung werden kleiner häufig die < Vergleichsoperatoren größer verwendet, die > in Abbildung 4 kleiner gleich aufgelistet sind. <= - Vorsicht größer gleich Verwechslungsgefahr: >= Ein einzelnes Gleichzeichen "=" steht für eine Abbildung Wertzuweisung 4: (Kapitel Vergleichsoperatoren in Java 3). Der Vergleichsoperator besteht aus zwei Gleichzeichen "=="! Abbildung 5 zeigt als Zusammenfassung das Struktogramm zur Methode VerwundbarSetzen. Rumpf der Methode VerwundbarSetzen verwundbar = verwundbarneu true verwundbar == true false symbol.farbesetzen("gelb") symbol.farbesetzen("rot") Abbildung 5: Struktogramm zur Planung der Methode VerwundbarSetzen Aufgabe 5.2 Ergänze im Methodenrumpf der Methode verwundbarsetzen die bedingte Anweisung aus Abbildung 3 und teste die Methode!

Kapitel 5 Zustand eines Objekts Seite 3 / 6 5.2 Immer wieder Objektkommunikation Ohne Objektkommunikation funktioniert die Zusammenarbeit von Objekten nicht. Um die Kommunikation beim Aufruf der Methode verwundbarsetzen zu veranschaulichen, sind in Abbildung 6 Sequenzdiagramme zu sehen. a) symbol: KREISFORM: b) symbol: KREISFORM: c) symbol: KREISFORM: Abbildung 6: Drei Varianten eines Sequenzdiagramm für den Aufruf der Methode VerwundbarSetzen Hinweis: Beachte, dass die Sequenzdiagramme in Abbildung 5 den Methodenrumpf der Methode VerwundbarSetzen nicht vollständig wiedergeben. Es fehlt die Zuweisung verwundbar = verwundbarneu Dies hat aber seine Richtigkeit, denn ein Sequenzdiagrammdient zur Veranschaulichung der Objektkommunikation. Die Zuweisung ist eine Attributwertänderung innerhalb eines Objekts. Es tritt keine Kommunikation dabei auf ( Das Objekt führt hier keine Selbstgespräche ).

Kapitel 5 Zustand eines Objekts Seite 4 / 6 Aufgabe 5.3 Spiele die Objektkommunikation beim Aufruf der Methode VerwundbarSetzen als Rollenspiel nach. Zur Kennzeichnung des Werts des Attributs farbe des Objekts symbol wären verschiedenfarbige Mützen des Schauspielers des Objekts symbol eine elegante Version. Aufgabe 5.4 Erkläre Unterschiede bzw. Gemeinsamkeiten der Sequenzdiagramme in der Abbildung 6. Verwende dabei Fachausdrücke! Aufgabe 5.5 Ergänze auch in den Methoden VerwundbarMachen und UnverwundbarMachen aus Aufgabe 4.10 einen Methodenaufruf an das Objekt symbol, damit die Farbe des Symbols zum Wert des Attributs verwundbar passt. 5.3 Objektzustand Je nach Blickrichtung und Verwundbarkeit befindet sich mampfi in einem anderen Zustand. In Abbildung 6 sind drei verschiedene Zustände abgebildet. mampfi: MAMPFI positionx = 0 positiony = 0 verwundbar = true blickrichtung ='N' mampfi: MAMPFI positionx = 0 positiony = 0 verwundbar = false blickrichtung ='N' mampfi: MAMPFI positionx = 0 positiony = 0 verwundbar = false blickrichtung ='O' Zustand Z1 Zustand Z2 Zustand Z3 Abbildung 7: Unterschiedliche Zustände des Objekts mampfi, sichtbar an den unterschiedlichen Attributwerten in den Objektkarten (Die Attribute positionx und positiony werden in die Überlegungen zunächst nicht mit einbezogen) Zur Veranschaulichung ist zu jedem Objektzustand das passende Objekt der Klasse KREISFORM abgebildet. Aufgabe 5.6 Wie viele verschiedene sinnvolle Objektzustände von mampfi gibt es, wenn man nur die Attribute verwundbar und blickrichtung betrachtet?

Kapitel 5 Zustand eines Objekts Seite 5 / 6 Für das Attribut blickrichtung sind vier verschiedene sinnvolle Werte möglich ('O', 'S', 'W', 'N'), für das Attribut verwundbar zwei (true, false). So kann mampfi 4 * 2 = 8 verschiedene Zustände annehmen, wenn man nur diese beiden Attribute betrachtet. Betrachtet man noch zusätzlich die Attribute positionx und PositionY, so gibt es noch deutlich mehr verschiedene Zustände. Aufgabe 5.7 Überlege, wie man die Anzahl der verschiedenen möglichen Zustände eines Objekts der Klasse KREISFORM ermitteln kann. Wovon hängt diese Anzahl ab? Welche dieser Zustände sind nicht sinnvoll? Fasse deine Überlegungen in einigen Sätzen im Heft zusammen. Hinweis: Es wird hier als Antwort keine konkrete Zahl erwartet, denn die Berechnung ist ein wenig schwierig. Überlegungen wie man prinzipiell die Berechnung durchführen muss sind ausreichend. Ändert sich mindestens ein Attributwert, so ändert sich auch der Zustand eines Objekts. Man spricht hier auch von einem Zustandsübergang. Stimmen in zwei Situationen alle Attributwerte überein, dann befindet sich das Objekt im selben Zustand. Änderungen von Attributwerten, d.h. Zustandsänderungen eines Objekts sind möglich durch a) Zuweisungen b) geeignete Methodenaufrufe, wenn dort Wertzuweisungen enthalten sind. Beispiel: Wird die Methode NachSuedenBlicken des Objekts Mampfi aufgerufen, und blickte er vorher nicht nach Süden, so ändert sich sein Zustand (weil der Wert des Attributs blickrichtung auf 'S' gesetzt wird) und gleichzeitig auch der Zustand des Symbols von Mampfi (weil über den Methodenaufruf symbol.startwinkelsetzen(300) innerhalb der Methode NachSuedenBlicken beim Symbol-Objekt der Wert des Attributs Startwinkel geändert wird.) In der Informatik wird der Begriff Zustand wie folgt definiert: Der Zustand eines Objekts wird durch die Gesamtheit der Werte aller seiner Attribute festgelegt. Ein Objekt ändert seinen Zustand, wenn sich der Wert mindestens einer seiner Attribute ändert. Aufgabe 5.8 Schreibe die Methodenaufrufe auf, die in Abbildung 7 für einen Zustandsübergang von Z1 nach Z2 bzw. Z2 nach Z3 sorgen. Welche Zuweisungen sind für die Zustandsübergänge entscheidend? Aufgabe 5.9 a) Mampfi ist im Zustand Z3 in Abbildung 7. In welchen Zustand ist er, wenn der Methodenaufruf mampfi.verwundbarsetzen( false ) ausgeführt wurde? b) Mampfi ist im Zustand Z3 in Abbildung 7. Es werden finden nun folgende Methodenaufrufe statt: mampfi.nachsuedenblicken() mampfi.verwundbarsetzen( true ) mampfi.nachwestenblicken() Zeichne ein Objektdiagramm von dem zustand, in dem sich mampfi nun befindet.

Kapitel 5 Zustand eines Objekts Seite 6 / 6 5.4 Zusammenfassung Aufgabe 5.10 Fasse die wesentlichen Inhalte dieses Kapitels in deinem Heft zusammen. Folgende wichtigen Begriffe sollten dabei enthalten sein: bedingte Anweisung, Bedingung, Zustand, Zustandsübergang Aufgabe 5.11 Mit der bedingten Anweisung ist eine im Vergleich zu Kapitel 4 unterschiedliche Bewegung von mampfi möglich. Formuliere zusätzlich zu den Methoden NachOstenBlicken, NachSuedenBlicken, NachWestenBlicken und NachNordenBlicken neue Methoden RechtsDrehen und LinksDrehen, die eine Änderung der Blickrichtung abhängig von der aktuellen Blickrichtung umsetzen.