5 Das Projekt Apfelwein
|
|
- Elke Sommer
- vor 7 Jahren
- Abrufe
Transkript
1 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 1 5 Das Projekt Apfelwein Bemerkung: In der 10. Jahrgangsstufe (G8) werden die Schüler in die zustandsorientierte Programmierung eingeführt. Dies erfolgt mit Hilfe von if-else-anweisungen und kann dann auf die switch-anweisung erweitert werden. Bei komplexen Automaten halte ich es jedoch sinnvoller, diese mit Hilfe einer Zustandsübergangstabelle einzuführen. Im Kapitel 6 ZOM in BlueJ zeige ich einige Beispiele. Soll bei der Programmierung von Automaten auf Erweiterbarkeit geachtet werden, empfehle ich die Verwendung des STATE-Entwurfsmusters. Ein Bauer und sein Freund kauften ein 8-Liter-Fass, gefüllt mit besten Apfelwein. Sie wollten den Wein gerecht aufteilen, besaßen aber nur einen 5-Liter-Krug und einen 3-Liter- Krug. Wie gelang es ihnen dennoch? Übung 5.1: Finde eine Lösung dieses Problems. Diese bekannte Knobelaufgabe wirst Du nun programmieren. Abbildung 5.1 zeigt eine mögliche Benutzeroberfläche für dieses Spiel. Abbildung 5.1: Grafische Oberfläche des Apfelwein-Problems
2 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite Zustandsdiagramm Zur Lösung des Problems kannst du eine Tabelle verwenden. Diese erleichtert dir das systematische Durchgehen aller Füllstände: 8-Liter-Fass 5-Liter-Fass 3-Liter-Fass 8 Liter 0 Liter 0 Liter 5 Liter 0 Liter 3 Liter Abbildung 5.2: Tabelle der Füllstände der einzelnen Fässer Jede Zeile dieser Tabelle zeigt den entsprechenden Inhalt der drei Fässer an. Um einen Überblick zu erlangen, ist es leichter, diese Zustände in einem Zustandsdiagramm darzustellen. Abbildung 5.3: Darstellung von Zuständen und Zustandsübergängen Wie in Abbildung 5.3 dargestellt ist, wird jeder Zustand als Kreis abgebildet und die Zustandsübergänge mit Pfeilen symbolisiert. Jedes Ereignis, z.b. das Umfüllen, führt zu einem neuen Zustand. Übung 5.2: Erstelle mit Hilfe deiner Lösung aus Übung 5.1 das Zustandsdiagramm. 5.2 Zustandstabelle Zustände kannst du auch in einer Tabelle darstellen. Hierzu gibst du jedem Zustand einen Namen, bei diesem Projekt eignet sich hierfür eine Zahl.
3 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 3 Zustand Fass8 Fass5 Fass Abbildung 5.4: Zustandstabelle In einer solchen Zustandstabelle wird dargestellt, welche Zustände die drei Fässer annehmen. Es wird jedoch nichts über die Reihenfolge der Zustände ausgesagt. Wahrscheinlich wirst du intuitiv die Zustände in der richtigen Reihenfolge in deiner Tabelle eingetragen haben. Dies ist allerdings nicht notwendig, wie du bei späteren Beispielen kennen lernen wirst. Für die Implementierung des Projekts Apfelwein ist nun eine Kombination aus Zustandstabelle und Zustandsdiagramm ideal. Du ergänzt die Zustandstabelle um eine weitere Spalte. Diese gibt den jeweiligen Folgezustand bei Betätigen des Buttons umfuellen an. Zustand Fass8 Fass5 Fass3 Folgezustand Übung 5.3: Abbildung 5.5: Kombination aus Zustandstabelle und Zustandsübergangstabelle Vervollständige die Kombination aus Zustandstabelle und Zustandsübergangstabelle. Nun hast du dich mit dem Apfelwein so weit beschäftigt, dass du diese programmieren kannst. 5.3 Die Klasse Bauer Als Erstes suchst du alle Zustände zusammen:
4 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 4 Abbildung 5.6: Hier sind die Zustände insgesamt 9 Als Nächstes gibst du jedem Zustand eine Bezeichnung. In diesem Beispiel eignet sich eine Nummerierung von 0 bis 8 wie in der Zustandstabelle dargestellt. Als Letztes definierst du noch drei Datenfelder fass8, fass5 und fass3 für die Fässer und ein Datenfeld zustand, das den aktuellen Zustand hält. public class Bauer private Fass fass8, fass5, fass3; private int zustand; //aktueller Zustand Abbildung 5.7: Datenfelder der Klasse Bauer Übung 5.4: Erstelle ein Projekt Apfelwein01a und die Klasse Bauer mit ihren Datenfeldern. Nun musst du dich um die Zustandsübergänge kümmern. Wie in Abbildung 5.3 dargestellt, benutzt du die Methode umfuellen() als Ereignis für einen Zustandsübergang. public void umfuellen() if (zustand == 0) fass8.setzeaktuelleninhalt(8); fass5.setzeaktuelleninhalt(0); fass3.setzeaktuelleninhalt(0); zustand = 1; weitere Anweisungen Abbildung 5.8: Die Methode umfüllen() in der Klasse Bauer In der Methode umfuellen() wird jeder mögliche Zustand mit einer Bedingungsanweisung überprüft und gemäß dem jeweiligen Zustand wird für
5 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 5 das richtige Verhalten gesorgt. Falls notwendig muss ein Übergang in einen anderen Zustand erfolgen. Übung 5.5: Implementiere und vervollständige die Methode umfuellen() in der Klasse Bauer. Du erzeugst nun also innerhalb der Klasse Bauer eine Variable zustand, die die Zustandswerte hält. In den Methoden, die die Zustandsübergänge durchführen, schreibst du Bedingungsanweisungen, um gemäß den entsprechenden Zuständen handeln zu können. Bemerkung: Die Klasse Bauer kann noch nicht kompiliert werden, da diese Objekte einer Klasse Fass benötigt. 5.4 Die Klasse Fass Nun wirst du das Fass modellieren. Dazu musst du überlegen, welchen Eigenschaften ein Fass besitzt und welche Fähigkeiten es hat. Abbildung 5.9: Modellierung der Klasse Fass Ein Fass muss sein Gesamtvolumen und seinen aktuellen Inhalt kennen. Diese werden in die Datenfelder volumen und inhalt gespeichert. Beim Umfüllen wird der aktuelle Inhalt festgesetzt. Also benötigt die Klasse Fass die Methode setzeaktuelleninhalt(). Mit der Methode gibaktuelleninhalt() kann das Fass seinen aktuellen Inhalt anderen mitteilen. public class Bauer private Fass fass8, fass5, fass3;
6 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 6 private int zustand; //aktueller Zustand //Konstruktor und weitere Methoden fehlen noch Übung 5.6: Implementiere im Projekt Apfelwein01a die Klasse Fass. Implementiere einen geeigneten Konstruktor. Nun benötigst du noch die sondierende Methode gibaktuelleninhalt() und die verändernde Methode setzeaktuelleninhalt(). public void setzeaktuelleninhalt(int menge) inhalt = menge; public int gibaktuelleninhalt() return inhalt; Abbildung 5.10: Die Methoden setzeaktuelleninhalt() und gibaktuelleninhalt() in der Klasse Fass Übung 5.7: Implementiere in der Klasse Fass die Methoden setzeaktuelleninhalt() und gibaktuelleninhalt(). Überprüfe diese mit Hilfe des Inspektors. Da der Bauer die Fässer umfüllen muss, benötigt er einen Konstruktor, der ihm die Fässer übergibt. public Bauer(Fass fass8h, Fass fass5h, Fass fass3h) fass8 = fass8h; fass5 = fass5h; fass3 = fass3h; zustand = 0; //Anfangszustand Abbildung 5.11: Konstruktor der Klasse Bauer Übung 5.8:
7 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 7 Implementiere in der Klasse Bauer nun den geeigneten Konstruktor aus Abbildung Abbildung 5.12: Klassendiagramm mit dem Aufruf der Methode umfuellen() Übung 5.9: Teste dein Projekt Apfelwein01a ausführlich. Erzeuge das volle 8-Liter-Fass und ein jeweils leeres 5- bzw. 3-Liter-Fass. Anschließend erzeuge einen Bauern, der den Wein zwischen diesen drei Fässern umschütten kann. Spiele das eingangs erwähnte Apfelwein-Problem durch. Übung 5.10: (Für Experten) Bisher musst du die drei Fässer direkt erzeugen. Entwerfe einen Konstruktor in der Klasse Bauer, der diese Aufgabe automatisch durchführt. 5.5 Grafische Benutzeroberfläche Bemerkung: Das Erstellen einer grafischen Oberfläche soll in diesem Kapitel nicht im Vordergrund stehen, es würde zu sehr vom eigentlichen Ziel der zustandsorientierten Programmierung wegführen. Deswegen habe ich bereits alle notwendigen Anweisungen in der Klasse ApfelweinGUI implementiert, einige davon musst du allerdings noch auskommentieren. Die grafische Benutzeroberfläche ist weit gehend bereits vorbereitet. Ich habe diese in zwei größere Panels eingeteilt: das Steuerungspanel steuerungp, das die
8 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 8 Buttons zum Umfüllen und zum Beenden enthält, und das Darstellungspanel darstellungp, das die Bühne für die drei Fässer enthält. Abbildung 5.13: Die vorbereitete grafische Oberfläche von ApfelweinGUI Das Projekt ApfelweinGUI enthält bereits die Klassen Ansicht und Buehne. Die Klasse Ansicht erzeugt die in Abbildung 5.13 dargestellte Benutzeroberfläche. Sie enthält a) die Zeichenfläche, in der die drei Fässer dargestellt werden sollen, b) ein TextArea, Buttons und die dafür notwendigen Methoden, von denen zum jetzigen Zeitpunkt viele noch auskommentiert sind. Die Klasse Buehne dient zur bildlichen Darstellung der Fässer. Sie enthält zum jetzigen Zeitpunkt bereits die Methode paintcomponent(), die das oben abgebildete Koordinatensystem mit der Beschriftung zeichnet. Die Fässer und deren Inhalt soll von jedem Fass selbst gezeichnet werden. Übung 5.11: Hole vom Schulserver das Projekt ApfelweinGUI. Speichere dieses unter dem Namen Apfelwein01b. Versuche im Quelltext der Klassen Ansicht und Buehne die in Abbildung 5.13 dargestellten Panels, Buttons und Textaeas wiederzufinden. Du wirst nicht jeden Zusammenhang verstehen, aber versuche es wenigstens. Übung 5.12 Füge mit Hilfe von Edit > Add Class from File die Klassen Bauer und Fass in das Projekt Apfelwein01b hinzu. Entferne in den Klassen Ansicht und Buehne die entsprechenden Kommentierungen. Wie bereits oben erwähnt, sollen die Fässer sich selbst zeichnen. Das bedeutet, du musst in der Klasse Fass die Methoden zeichne() und zeichnefass()
9 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 9 implementieren, die die Größe der entsprechenden Rechtecke berechnet und anschließend diese Rechtecke auf die Zeichenfläche buehne setzt. Abbildung 5.14: Zeichnen der Fässer Wie in Abbildung 5.14 dargestellt, stehen die Fässer auf einer gemeinsamen Bodenlinie. Mit Hilfe des Vergrößerungsfaktors wird das Volumen und der Füllstand für die Zeichnung ermittelt. Anschließend werden die Daten xpos, ypos, hoehe und fuellstand verwendet, um die korrekten grauen und roten Rechtecke zu zeichnen. Hierbei hilft die Methode zeichnefass(). Zum Schluss wird als Feature der aktuelle Fassinhalt angegeben. public void zeichne(graphics g, int xposh) int boden = 180; //Bodenlinie aller Faesser int faktor = 20; //Vergroesserungsfaktor int xpos, ypos, hoehe, fuellstand; xpos = xposh; ypos = boden - volumen * faktor; //somit steht das Fass auf Bodenlinie hoehe = volumen * faktor; //Hoehe des Fasses fuellstand = inhalt * faktor; //momentaner Fuellanzeige des Fasses zeichnefass(g, xpos, ypos, hoehe, fuellstand); g.setcolor(color.blue); g.drawstring("inhalt: " + inhalt, xpos, 200); //schreibt momentanen Inhalt Abbildung 5.15: Quelltext der Methode zeichne() in der Klasse Fass private void zeichnefass(graphics g, int xpos, int ypos, int hoehe, int fuellstand)
10 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 10 int breite = 40; //Breite aller Faesser g.setcolor(color.lightgray); g.fillrect(xpos, ypos, breite, hoehe - fuellstand); g.setcolor(color.red); g.fillrect(xpos, ypos + (hoehe - fuellstand), breite, fuellstand); Abbildung 5.16: Quelltext der Methode zeichnefass() in der Klasse Fass Übung 5.13 Implementiere die beiden Methoden zeichne() und zeichnefass() in der Klasse Fass. Wenn du alles korrekt übernommen hast, sollte dein Projekt Apfelwein01b wie in Abbildung 5.17 aussehen und auch funktionieren. Abbildung 5.17: Das fertige Projekt Apfelwein 5.6 Ausblick Du hast die Zustände in diesem Projekt Apfelwein zyklisch angeordnet. Der Benutzer hat somit keine Auswahl, er wird sozusagen automatisch von Zustand zu Zustand geführt. Auf eine analoge Weise könntest Du nun beispielsweise auch eine Ampelanlage modellieren. Dies sollte dir nun nicht mehr schwer fallen. Das Apfelwein-Problem lässt sich allerdings auch als Spiel programmieren.
11 Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 11 Abbildung 5.18: Anregung zum Projekt Apfelwein02 Hier kann der Benutzer auf der Registerkarte manuell selbstständig die Umfüllaktionen wählen und durch Ausprobieren zum Ziel gelangen. Übung 5.14 (Für Experten) Erstelle das Projekt Apfelwein02 ähnlich wie in Abbildung 5.18 dargestellt.
Kapitel 5 Das Projekt Bahn Seite 1
Kapitel 5 Das Projekt Bahn Seite 1 8 Das Projekt Bahn In diesem Kapitel möchte ich nur einen ersten Einblick in die Konzepte der Vererbung und des Polymorphismus geben. Als Motivation dient ein Zug, den
Mehr124 Kompetenzorientierte Aufgaben im Informatikunterricht
124 Kompetenzorientierte Aufgaben im Informatikunterricht 4.2 Aufgaben 4.2.1 Aufgabe 1: Kühlschrank 4.2.1.1 Aufgabenstellung Ein einfacher Kühlschrank besitzt einen Ein-Aus-Schalter, der jederzeit betätigt
Mehr1 Modellierung einer Uhr
PNS Wahlpflichtfach Informatik Projekt: Uhrzeit Seite 1 1 Modellierung einer Uhr Aufgabe: Es soll ein Modell für eine Digitaluhr erstellt werden, die Stunden und Minuten im Format hh:mm repräsentiert.
Mehr2 Entwurf eines einfachen Telefonbuchs
Kapitel 2 Entwurf eines einfachen Telefonbuchs (Phase 1) Seite 1 2 Entwurf eines einfachen Telefonbuchs Zuerst solltest du dir darüber Gedanken machen, welche Funktionen von unserem Telefonbuch erwarten.
MehrKapitel 3 Das Projekt Bankkonto Seite 1
Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.
Mehr5 Projekt Bankverwaltung
Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen
Mehr2. Vererbung und Kapselung
2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL
MehrWuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int
Informatik Eph IFG1/2 (GA) Bearbeitungszeit: 90 min. Seite 1 Aufgabe 1: Kniffel Modellierung und Implementierung Im Folgenden sollen Teile eines kleinen "Kniffel"-Spiels modelliert, analysiert und implementiert
MehrKapitel 4 Das Projekt Digitaluhr Seite 1
Kapitel 4 Das Projekt Digitaluhr Seite 1 4 Das Projekt Digitaluhr Im letzten Kapitel hast du untersucht, was Objekte sind und wie diese implementiert werden. Dabei hast du Datenfelder, Konstruktoren und
Mehr5 Codierung nach RSA (Lösung)
Kapitel 5 Codierung nach RSA (Lösung) Seite 1/17 5 Codierung nach RSA (Lösung) 5.1 Einführung Die drei Mathematiker Rivest, Shamir und Adleman entwickelten 1977 das nach ihnen benannte RSA-Verfahren. Es
MehrEinführung in die Programmierung mit BlueJ
Einführung in die Programmierung mit BlueJ Thema 4 Steuerstrukturen - Verzweigungen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Daten speichern: Datenfelder Instanzvariablen,
MehrInstitut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September
Mehr4 Codierung nach Viginere (Lösung)
Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
MehrStick & Strick - Bordürensimulator
Seite 1 In der Firma Stick & Strick gab es ein größeres Computerproblem. Dabei löschte die Panne Teile des Quellcodes der Bordürensimulationssoftware unwiderruflich. Gerettet werden konnten verschiedenen
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
Mehr1 Fragen aus dem Unterricht zu Projekt Garten
Kapitel 1z Grundlagen der Objektorientierung Seite 1 1 Fragen aus dem Unterricht zu Projekt Garten In diesem Zusatzkapitel werde ich Probleme ansprechen, die sich im Laufe des Unterrichtsgesprächs ergeben
MehrZustände umsetzen Enumerations (Aufzählungen) Zustandsobjekte
Zustände umsetzen Enumerations (Aufzählungen) Zustandsobjekte Dr. Beatrice Amrhein Kursinhalt Aufzählungen erzeugen Aufzählungen verwenden Zustandsobjekte erzeugen Zustandsobjekte verwenden Nach dem Handbuch
Mehr1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!
Objektorientierte Programmierung & Modellierung WS 2007/8 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur 07.12.2007 Gruppe A Bitte in Druckschrift
MehrInformatik 10 Objektorientiertes Modellieren und Programmieren mit Java
Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java 1. Klassen und Objekte Zunächst wollen wir mit Hilfe eines Miniprogramms die Entwicklungsumgebung BlueJkennen lernen. Die Installation
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrProbeklausur Informatik 2 Sommersemester 2013
Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrLernteam OOP2 SW Programmieren 1 - H1103 Felix Rohrer
Aufgabe 1. Klasse Balloon In der Vorlesung wurde bruchstückhaft eine Klasse Balloon eingeführt. Programmieren Sie eine entsprechende Klasse mit BlueJ bzw. fügen Sie nun die "Bruchstücke" zusammen. Kommentieren
MehrGui-Objekte und Datenmodellobjekte
Gui-Objekte und Datenmodellobjekte Anja Faatz 2010 Gymnasium Gonsenheim Die Themen Beispiel Ampel Trennung: Datenmodell-GUI Datenmodell GUI Erzeugung der Objekte Übungen Literatur Die Themen Beispiel Ampel
MehrKapitel 4 Einfache Methoden der Klasse MAMPFI
Kapitel 4 Einfache Methoden der Klasse MAMPFI Seite 1 / 9 Kapitel 4 Einfache Methoden der Klasse MAMPFI Lernziel: Eine Klasse in Java erstellen: Methoden 4.1 Vervollständigen des Klassendiagramms Nachdem
MehrKapitel 7 Algorithmem Seite 1
Kapitel 7 Algorithmem Seite 1 7 Algorithmen In diesem Kapitel will ich einige einfache Algorithmen mit ihren Kontrollstrukturen in Java besprechen. Zum Nachschlagen steht am Ende dieses Kapitels eine Zusammenfassung
MehrDer Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.
Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.
MehrObjektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik
Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik Organisatorisches Im Web unter http://www.uni-ulm.de/psh Vorwissen Du kannst bereits Klassen als Typen mit statischen
MehrZahlenraten: Ein Spiel in Java.
Zahlenraten: Ein Spiel in Java. Nach dem Start vom Java-Editor (und dem Erstellen eines JFrame-Programms) sieht man Folgendes: Dieser Code startet das Programm, indem es ein Objekt der Klasse Zahlenraten
MehrObjektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
Mehr6. Zustandsorientierte Modellierung
bertram.hafner@t-online.de Informatik 11 Seite 25 6. Zustandsorientierte Modellierung Im Alltag benutzen wir vielfältige Automaten: denke an Getränkeautomat, Ampelanlage, Kaffeeautomat, Waschmaschine,
MehrBegriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
Mehr5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrKapitel 7 Schnittstelle als Außenansicht eines Objekts Seite 1 / 9
Kapitel 7 Schnittstelle als Außenansicht eines Objekts Seite 1 / 9 Kapitel 7 Schnittstelle als Außenansicht eines Objekts Lernziele: Schnittstelle, Wiederholung Umsetzung von Beziehungen, Objektkommunikation
MehrAm Anfang werden die Attribute deklariert public class Kreis {
Klassendiagramm Kreis Entwerfen Sie ein Klassendiagramm der Klasse Kreis mit allen Attributen und min. drei Methoden. public class Kreis { sichtbar Platz für Atributeund Methoden protected int xposition;
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrLerne programmieren mit Sequentielle Programmierung mit VPL
Lerne programmieren mit Sequentielle Programmierung mit VPL von Basil Stotz Der Bootsverleih Du vermietest Ruderboote an deine Kunden. Du besitzt Ruderboote: Der Einer: ein Boot mit einen Platz. Der Zweier:
MehrGobales Gedächtnis. AntMe. Sebastian Loers. lb-sys.info. Projekt: AntMe - Globales Gedächtnis (Version 1.0)
AntMe Sebastian Loers lb-sys.info Projekt: AntMe - Globales Gedächtnis (Version 1.0) Dokument Version: 1.0 Erstellt am: 15.04.2007 Geändert am: 30.04.2007 Copyright 2007 lb-sys.info. Alle Rechte vorbehalten.
MehrObjektorientierte Beschreibung einfacher Vektorgrafiken
Objektorientierte Beschreibung einfacher Vektorgrafiken Stand: 20.01.2016 Jahrgangsstufen Lernbereich 1: Modul 1.2 Fach/Fächer Zeitrahmen Benötigtes Material Informationstechnologie 1 Unterrichtsstunde
MehrGrafik-Programmierung
Grafik-Programmierung In dieser Übung beschäftigen wir uns zunächst mit elementaren Grundlagen der Grafikprogrammierung. In der nächsten Übung werden wir dies auf Spiele anwenden. Aufgabe 1: Einfache Grafik:
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrAufgabenblatt: OOP - Seite 1. (2.) Geometrie: Erstellen Sie eine Klasse CPyramid, die sich von der Klasse Square ableitet:
Aufgabenblatt: OOP - Seite 1 Aufgabenblatt: OOP II (1.) Gegeben ist nebenstehende die Klasse CPoint! (a.) Schreiben Sie eine Subklasse CPoint3 mit nebenstehenden Eigenschaften und Methoden und Testen Sie
Mehr/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();
Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,
MehrGraphische Benutzungsoberflächen mit Java. Einführung in NetBeans
Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung
MehrEAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ
EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
Mehr12. Fachseminar Informatik Martin Jakobs Zustandsorientierte Modellierung (Standard 2)
Ergebnisse der Seminarsitzung vom 14. Januar 2008 Definition 1 Ein ist eine struktur- und verhaltenstreue Beschreibung eines eistierenden oder geplanten Sstems. Definition 2 Ein ist eine vereinfachte Nachbildung
MehrFelder. M. Jakob. 28. April Gymnasium Pegnitz
Felder M. Jakob Gymnasium Pegnitz 28. April 2015 Inhaltsverzeichnis 1 Begriffsbildung 2 Verwendung von Feldern Begriffsbildung Gliederung 1 Begriffsbildung 2 Verwendung von Feldern M. Jakob (Gymnasium
MehrArbeitsblatt 6: Programmierung geometrischer Figuren
Arbeitsblatt 6: Programmierung geometrischer Figuren Die Karten, auf denen die Lärmmessungen dargestellt werden, bestehen aus einer Vielzahl geometrischer Formen. Diese geometrischen Formen ergeben zusammen
MehrKapitel 14 Das Labyrinth optimieren
Kapitel 14 Das Labyrinth optimieren Seite 1 / Kapitel 14 Das Labyrinth optimieren Lernziele: Erstellen mehrerer Methoden mit gleichem Namen in einer einzigen Klasse Vertiefungen zur Objektkommunikation.
MehrSerienbrief erstellen
Um in Word 2010 einen Serienbrief zu erstellen, muss man den Seriendruck-Assistenten aufrufen. Der Seriendruck-Assistent führt dich in sechs Schritten durch diese Thematik. Dabei enthält jeder Schritt
MehrJetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.
Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens
MehrÜbung Informatik I - Programmierung - Blatt 8
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-5056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung
Ludwig-Maximilians-Universität München WS 2013/14 Institut für Informatik Übungsblatt 10 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung
Mehr1. Das Koordinatensystem
Liebe Schülerin! Lieber Schüler! In den folgenden Unterrichtseinheiten wirst du die Unterrichtssoftware GeoGebra kennen lernen. Mit ihrer Hilfe kannst du verschiedenste mathematische Objekte zeichnen und
MehrExkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Einführung in das objektorientierte Modellieren und Implementieren mit Java
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Einführung in das objektorientierte Modellieren und Implementieren mit Java Das komplette Material finden Sie hier: Download bei School-Scout.de
MehrDer Serienbrief bzw. Seriendruck
Der Serienbrief bzw. Seriendruck Sie lernen einen Serienbrief zu erstellen. In Word 2010 wird der Serienbrief unter der allgemeinen Bezeichnung Seriendruck geführt. Er besteht aus einem Hauptdokument (dem
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
MehrKlassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt
Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1
Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.
MehrInformatik 1 MaVt FS Übung 10
Informatik 1 MaVt FS 2010 Übung 10 Claudia Kuster ckuster@inf.ethz.ch Mittwoch 13-15h HG E 27 http://graphics.ethz.ch/~ckuster/teaching/mavt_info1_2010.html Vorlesung Objektorientierte Programmierung Konstruktoren
MehrProjektarbeit Java. 4-Gewinnt. Berner Fachhochschule. 2004, Labor für Technische Informatik
Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Informatik Labor für technische Informatik Projektarbeit Java 4-Gewinnt 2004, Labor für Technische Informatik Dateiname:
MehrArbeitsblatt 5 EAD II NetBeans
Arbeitsblatt 5 EAD II NetBeans Graphische Oberfläche für Uhrenanzeige mit NetBeans Für die Einführung in die Verwendung von NetBeans erstellen wir die graphische Oberfläche für die Uhr nun mit NetBeans.
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrDurch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.
Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung
MehrBeispiel zum Schaltungsentwurf mithilfe endlicher Automaten Ein Zähler modulo 3 mit Reset
Eckart Modrow Beispiel zum Schaltungsentwurf S. 1 Beispiel zum Schaltungsentwurf mithilfe endlicher Automaten Ein Zähler modulo 3 mit Reset Inhalt: 1. Bezug zum Unterricht 2. Beschreibung durch einen endlichen
MehrStaubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen.
Projekt: Staubsauger-Roboter Immer beliebter werden die kleinen automatischen Haushaltshilfen. Du sollst nun einen Staubsauger-Roboter programmieren, der gesteuert von einer künstlichen Intelligenz (KI)
MehrInformationsverarbeitung im Bauwesen
12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten
MehrPrüfung Programming, Automation, Computation
Prüfung Programming, Automation, Computation Programming: Visualisierung ung mit Google Code Playground (5 Punkte) Die Software GoalScape stellt Hierarchien kreisförmig dar. Die Visualisierung links unten
MehrFormulare. Datenbankanwendung 113
Formulare Wenn Sie mit sehr umfangreichen Tabellen arbeiten, werden Sie an der Datenblattansicht von Access nicht lange Ihre Freude haben, sind dort doch immer zu wenig Felder gleichzeitig sichtbar. Um
MehrEin kleiner Blick auf die generische Programmierung
TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen
MehrSpace Shooter. Die Gesteinsbrocken sollen sich von selbst von rechts nach links bewegen.
Space Shooter 1. Grundlegende Funktionen Lade das Szenario SpaceShooter-0. In diesem Spiel soll zunächst nur Folgendes geschehen: Die Gesteinsbrocken sollen sich von selbst von rechts nach links bewegen.
MehrSoftwareentwicklung Lösungen zu Programmierung von Klassen mit BlueJ
Klasse, Objekt, Eigenschaften und Verhalten Aufgaben: 1. Erläutern Sie die im obigen Text fett gedruckten Worte. 2. Stellen Sie eine Klasse, die als Bauanleitung für Objekte vom Typ "frische Lebensmittel"
MehrProcessing Info zu Variablen und Bedingungen
Processing Info zu Variablen und Bedingungen Dieses Dokument enthält - Variablen (Variablen, Datentypen, Deklaration, Geltungsbereich, Benennung) - Bedingungen (if, mousepressed, else) Variablen Eine Variable
MehrInventor. C:\Dokumente und Einstellungen\Administrator\Desktop\COMENIUS_Juni2005\Inventor01_D.doc Seite 1
EINZELTEILMODELLIERUNG MIT DEM INVENTOR... 3 DIE BENUTZEROBERFLÄCHE...4 BAUTEILKONSTRUKTION FÜR EINE BOHRVORRICHTUNG MIT HILFE VON SKIZZENABHÄNGIGKEITEN... 22 Editieren von Skizzen mit Abhängigkeiten...
MehrEinführung in Automation Studio
Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
Mehr8 Baum in perfekter Komposition
8 Baum in perfekter Komposition Die Implementierung des Binärbaums im letzten Kapitel wird mithilfe des Entwurfsmusters Kompositum optimiert. Knoten und Abschluss Bei der einfach verketteten Liste wurde
MehrProgrammiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische
MehrJTable. W. Lang HWR Berlin, SS
JTable W. Lang HWR Berlin, SS 2014 1 JTable Die Swing-Komponente JTable dient der Darstellung einer zweidimensionalen Tabelle Verwendung häufig im Zusammenhang mit Datenbankanwendungen Im Gegensatz zu
MehrPraktikum Software Engineering
Praktikum Software Engineering Verwendung von Enterprise Architect Pascal Weber, David Kulicke KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrFlash 8 Lupeneffekt. Natürlich funktioniert diese Anleitung auch mit einem anderen Bild.
Flash 8 Lupeneffekt Allgemein Für die folgenden Lernschritte benötigst du das Foto Winter.jpg aus dem Übungsordner Übungsdateien für Corel Photopaint und Painter. Du kannst den Ordner unter folgender Adresse
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 8 Besprechung: 11. 15.12.2017 (KW 50) Vorbereitende
MehrBeziehungen zwischen Objekten
M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis 3 / 15 Beispiel Stadt und Land Objekte einer Klasse (hier LAND) können als Attribute Objekte einer anderen Klasse (hier hauptstadt der Klasse
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
MehrVorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 4 Besprechung: 13. 17.11.2017 (KW 46) Vorbereitende
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
Mehr7.5 Mit bunten Kreisen spielen
Workshop (fakultativ) 7.5 Mit bunten Kreisen spielen In diesem fakultativen Workshop wollen wir mit Objekt-Arrays arbeiten. Sie erinnern sich an die Klasse Kreis, die wir in der Folge 5 konstruiert hatten.
MehrEinführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch
Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative
MehrBeziehungen zwischen Objekten
Beziehungen zwischen Objekten M. Jakob Gymnasium Pegnitz 2. Februar 2015 Inhaltsverzeichnis 1 Aggregation und Referenzen 1.1 Begriffsbildung 1.2 Umsetzung in Java 2 Sequenzdiagramme 1 Gliederung 1 Aggregation
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrProblemlösen Denkaufgaben
Problemlösen Denkaufgaben Hufeisenaufgabe Das Hufeisen soll durch 2 gerade Schnitte in so viele Teile wie möglich zerschnitten werden. In der Skizze ist es z.b. in 3 Stücke geteilt. Das Hufeisen ist so
MehrTutorial zum Umgang mit Scratch
Tutorial zum Umgang mit Scratch In diesem Tutorial sollst du die grundlegenden Funktionen von Scratch ausprobieren und kennen lernen Danach solltest du gut mit dem Programm umgehen können und eigene Programme
MehrUniversität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer
Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.
Mehr