• Keine Ergebnisse gefunden

Teil 4

N/A
N/A
Protected

Academic year: 2021

Aktie "Teil 4"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1

Teil 4

Übung: Uhr

(2)

2

Zielsetzung

Ziel ist es, mit Hilfe objektorientierter Modellierung ein System zu entwickeln, mit dem eine einfache Uhr simuliert werden kann.

Nach: Barnes / Kölling: Objektorientierte Programmierung mit Java. Pearson Studium 2003.

(3)

3

Aufgabe: Identifikation von Objekten

Miniwelt

Versuchen Sie, in einem ersten Schritt Objekte zu identifizieren. Beachten Sie, dass Objekte autonome Einheiten mit klar bestimmten Zuständigkeiten bilden sollen.

16:46

(4)

4

Aufgabe: Beschreibung der Objekte

Beschreiben Sie zunächst informell und dann möglichst präzise die Attribute und Methoden der identifizierten Objekte.

- Überlegen Sie sich hierzu, welche Daten ein Objekt verwalten muss / durch welche Eigenschaften ein Objektzustand festgelegt wird.

- Überlegen Sie sich auch, welche Operationen ein Objekt ausführen soll.

(5)

5

Identifikation von Objekten

Miniwelt

Die Miniwelt soll mit Hilfe von zwei Objekten „stundenZaehler“ und

„minutenZaehler“ beschrieben werden. Diese Objekte sind für das weiterzählen des jeweiligen Stunden- bzw. Minutenwerts zuständig.

16:46

stundenZaehler minutenZaehler

Modell

(6)

6

Beschreibung von Objekten

Miniwelt

16:46

Modell

stundenZaehler max = 23 stand = 16

minutenZaehler max = 59 stand = 46 standSetzen(wert)

nullSetzen weiterZaehlen

standSetzen(wert) nullSetzen

weiterZaehlen

Beide Objekte „stundenZaehler“ und „minutenZaehler“ arbeiten nach

demselben Prinzip: Weiterzählen, bis ein maximaler Wert erreicht ist, dann wieder bei Null beginnen.

(7)

7

Klassenentwurf

Es ist daher sinnvoll, eine Klasse „TModuloZaehler“ zu entwickeln, die ein Bauplan für Zähler ist, die modulo eines bestimmten maximalen Werts wieder bei Null beginnen.

Objekte

stundenZaehler

TModuloZaeher - max: integer

- stand: integer

+ create(maxWert: integer) + destroy

+ setStand(standWert: int.) + weiterZaehlen

+ nullSetzen

+ getStand: integer

max = 23 stand = 16

minutenZaehler max = 59 stand = 46

Klasse

(8)

8

Aufgabe

Implementieren Sie das dargestellte (oder das selbst entwickelte) Modell.

(9)

9

Teil 6

Übung: Roboter

(10)

10

Zielsetzung

Ziel ist es, mit Hilfe objektorientierter Modellierung ein grafisches

Simulationsprogramm zu entwickeln, mit dem ein steuerbarer Modellroboter in einem Zellengitter bewegt werden kann.

(11)

11

Identifikation von Objekten

Miniwelt

Die Miniwelt soll mit Hilfe eines Objekts „roboter: TRoboter“ beschrieben werden. Dieses Objekt ist zunächst nur für die Bewegungen des Roboters (Schritt vorwärts; links drehen; rechts drehen; zurück in eine

Ausgangsposition) zuständig. Wir gehen auch von einer festen 10x10- Gitter-Welt aus.

Osten Westen

Süden Norden

(6,4)

(12)

12

Aufgabe

Sie sollen die Attribute und Methoden des Objekts „roboter“ festlegen. Die folgenden Fragen sollen bei dieser Festlegung helfen:

- Welche Eigenschaften des Roboters muss das Objekt „roboter“ mit geeigneten Attributen verwalten?

- Welche Operationen soll das Objekt „roboter“ vorerst ausführen können?

(13)

13

Lösungsvorschlag

TRoboter - xPos: integer - yPos: integer

- richtung: tRichtung + create

+ initialisieren + schritt

+ linksDrehen + rechtsDrehen + getXPos: integer + getYPos: integer

+ getRichtung: tRichtung

roboter xPos = 3 yPos = 5

richtung = osten

Objekt Klasse

(14)

14

Aufgabe

Im Verzeichnis „Roboter0“ finden Sie eine funktionsfähige Implementierung des Robotersystems, der kein objektorientiertes Modell zu Grunde liegt.

Ändern Sie dieses System so ab, dass das Miniwelt-Modell mit Hilfe eines Objekts „roboter“ beschrieben wird. Zum Vergleich finden Sie eine mögliche Lösung im Verzeichnis „Roboter1“.

Erweiterung: Es sollen zwei Roboter in der Welt agieren.

(15)

15

Teil 7

Zusammenfassung

(16)

16

Objektorientierung

Grundideen

Objekt Klasse

Modellierungssprache: UML

Implementierungssprache: Delphi, Java, ...

Grund- konzepte

(17)

17

Idee: Objekt als Programmeinheit

Ein Objekt (eine Klasse) ist eine Einheit (Modul), bei dem Daten und die hierauf anzuwendenden

Operationen gemeinsam verwaltet werden. Die Daten werden so verkapselt, dass ein Zugriff nur

über Operationen erfolgen kann

(Geheimnisprinzip). Diese Operationen werden in einer klar definierten Schnittstelle festgelegt.

Referenzen

ÄHNLICHE DOKUMENTE

Besprechung:

public class LinkedList implements List { public boolean add (Object o);.. public boolean remove

► Auch eine Protokollmaschine kann in einer Klasse erscheinen, sie beschreibt einen blackbox-Objektlebenszyklus, d.h. die beobachtbare Sicht von aussen, das Protokoll

Data Repository Layer (database, memory) Middleware (memory access, distribution). Graphical user interface

 Viele wichtige Verwaltungstätigkeiten einer Universität werden über die Studienabteilung abgewickelt. Studenten können hier immatrikulieren und inskribieren, sowie sich aber

Es ist natürlich insbesondere nur sinnvoll eine Subklasse aufzunehmen, wenn dann neue Attribute, neue Operationen oder neue Beziehungen hinzukommen, auch wenn das aus unserem

Man muss am kombinierten Knoten also zuerst warten, bis alle eingehenden Kanten mit Token belegt sind, diese werden dann zu einem Token vereint und dieser eine Token wird

Um eine abweichende Kopf- oder Fußzeile für einen Dokumentteil zu erstellen, muss das Dokument zunächst in Abschnitte unterteilt werden. - Klicken Sie auf den Abschnitt, für