Programmiermethodik Übung 6 Methoden verstehen und entwerfen (erstmal ohne Computer)

Slides:



Advertisements
Ähnliche Präsentationen
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Advertisements

Definition von Klassen in Java
Einführung in die Programmierung Zusammenfassung
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Java: Dynamische Datentypen
Listen Richard Göbel.
Abstrakte Klassen.
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Programmiermethodik Übung 12 Best practices. Musterlösung Übung 10.
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
3. Klassendiagramme in Java implementieren
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik Übung 6 Methoden verstehen und entwerfen.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Datensammlung
Thema: Fibonacci-Zahlen
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Grundkonzepte Java - Klassendefinition
Kapitel 1 – Erste Schritte
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Informatik Zustandsorientiertes Modellieren und Programmieren 2.4 Datenkapselung 2.4 Datenkapselung Objekte können miteinander kommunizieren, indem.
2. Zustandsorientiertes Modellieren 2.4 Datenkapselung
EPROG Tutorium #5 Philipp Effenberger
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
Aufgaben zu Rückgabewerten
Die Klasse Vielfrass in Java
Die Struktur einer Java-Klasse
Grundkurs Informatik mit Java
1. Die rekursive Datenstruktur Liste 1
Grundkurs Informatik 11-13
 Präsentation transkript:

Programmiermethodik Übung 6 Methoden verstehen und entwerfen (erstmal ohne Computer)

Musterlösung HA 5

Musterlösung HA5 Forts.

Musterlösung HA5.5 Mehrere Möglichkeiten –Exception (siehe vorige Folien) Vorteil: Flexibler Kontrollfluss, Fehlermeldung... –Boolean-Rückgabewert Problem: was bedeutet jeweils true/false? Kann ignoriert/vergessen werden –return -1 Böse!

Partykasse Alice, Bob und Oskar wollen Grillen. Da Bob und Oskar etwas unzuverlässig sind, entwirft Alice dafür ein Abrechnungsprogramm...

Grillvorbereitungen... Alice kauft Würstchen für 6 und Fleisch für 12 Bob kauft Salat für 3, Baguette für 3 und Bier für 9 Oskar kauft nur Alkohol: eine Flasche Wein für 3

Objektdiagramm vor buchen()

Klassendiagramm

buchen() Programmcode public class Person { private String name; private int konto; private Kasse kasse; private List buchungen = new ArrayList (); public void buchen(String was, int kosten) { Buchung buchung = new Buchung (); buchung.setBezahler (this); buchung.setWas(was); buchung.setKosten(kosten); kasse.addToBuchungen (buchung); List personen = kasse.getPersonen (); int teilbetrag = kosten / personen.size (); for (Person person : personen) { person.addToKonto(-teilbetrag); } this.addToKonto (kosten); } private void addToKonto (int betrag) { konto += betrag; } }

buchen() Ablauf public void buchen(String was, int kosten) { Buchung buchung = new Buchung (); buchung.setBezahler (this); buchung.setWas(was); buchung.setKosten(kosten); kasse.addToBuchungen (buchung); List personen = kasse.getPersonen(); int teilbetrag = kosten / personen.size(); for (Person person : personen) { person.addToKonto(-teilbetrag); } this.addToKonto (kosten); } was = Würstchen kosten = 6 personen = [ ap, bp, op ] teilbetrag = 6 / 3 = 2 bezahlt > Würstchen 6 < buchungen konto == -2 / 4

Objektdiagramm nach Buchungen

Praxisteil – Aufgabe 1 In kleinen Gruppen (ca. 3 Leute) Durchlauft die Methode abrechnen() als Zetteltest abrechnen() wird auf ap (Alice) aufgerufen –Benutzt dazu das ausgeteilte Arbeitsblatt –Vollzieht den Ablauf der Methode anhand der abgebildeten Objektstruktur Leitet eine allgemeine textuelle Verhaltensbeschreibung ab Achtung: Wichtig für die Hausaufgabe – Bewahrt die Zwischenergebnisse auf Welches Problem hat abrechnen()? Was müsste noch passieren, damit die Objektstruktur konsistent bleibt?

Praxisteil – Aufgabe 2 Alice hat diesen Monat nur noch 20 in bar verfügbar. Sie hat mit Fleisch und Würstchen schon 18 bezahlt. Welches Problem tritt nun auf, wenn Alice wie oben abrechnet und die Reihenfolge der Personen Alice, Bob, Oskar ist? Öffne den Eclipse Workspace zur Übung 6 Führe das Attribut Person.barvermoegen ein. Dies beschreibt, wieviel Bargeld die Person zur Verfügung hat. Schreibe Test der nicht-optimale Situation konstruiert Solange der Test nicht erfolgreich ist, führe einen Zetteltest durch oder steppe im Debugger, um herauszufinden warum Wie lässt sich das Problem der nicht optimalen Abrechnung umgehen? Optimiere Kasse.abrechnen() oder Person.abrechnen()

Hausaufgabe Auf der Seite der Veranstaltung im Netz –Drei Schleifendurchläufe des Zetteltest –Zusammenfassen von Buchungen implementieren