1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken...

Post on 06-Apr-2016

214 views 1 download

Transcript of 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken...

1

Idee von OO

Punkt

Bezugssystem

xBreite

Länge

ytransform(..)

Sichtbarkeiteinschränken

Abstraktion

KapselungParametrisierung

2

Kapselung

Punkt

Bezugssystem

xBreite

Länge

y

...

...setLänge

getLänge

setBreite

getBreite

getysety

transform()

weitere Zugriffsfunktionen

3

Unsichtbar

Sichtbar

4

Idee der Kapselung

• Attribute sind nur innerhalb der Klasse sichtbar• private• Notation: -• vor Änderung geschützt

• Zugriff auf Attribute nur durch „öffentliche“ Operationen („Methoden“)• public• Notation +• Methoden sind für Konsistenzwahrung zuständig

• Zusammenhang von• Länge/Breite und x/y

5

Abschließend noch einmal zur Beschreibung von Klassen

Typen undInitialwerte sind optional

6

Varianten der Notation

Klasse2

Klasse3

Klasse ohne Attributeund Operationen

Attribute und Methoden nicht dargestellt

7

UML: Beziehungen

Flächen

Knoten

Kanten

begrenzen

begrenzen

8

Beziehungen in UML - einführendes Beispiel

9

• jedes Grundstück hat mindestens drei Kanten

• jede Kante begrenzt genau zwei Grundstücke

Name

Multiplizität

10

Bezeichnung von Beziehungen

Klasse A Klasse BBeziehungsnameRolle ARolle B

Leserichtung

11

Bezeichnung: Noch ein Beispiel

Firma Mitarbeiterarbeitgeber arbeitnehmer

beschäftigtarbeitet für

12

Multiplizität von Beziehungen

Leserichtung

•eine Kante begrenzt genau 2 Grundstücke

•ein Grundstück hat mindestens 3 Kanten G1

G2

13

Mögliche Multiplizitäten:

1 genau eins0..1 null oder eins0..4 zwischen null und vier3,7 drei oder sieben0..* größer oder gleich null (Standard)* dto.1..* größer oder gleich eins0..3, 7, 9..*

14

• Aggregation: eine spezielle Assoziation, deren beteiligte Klassen eine Ganzes-Teile-Hierarchie darstellen

Wichtige Beziehungen (I):Aggregation und Komposition

• Komposition: eine strenge Form der Aggregation, bei der die Teile vom Ganzen

existenzabhängig sind

Ganzes

Teil

Ganzes

Teil

n1..1

15

Land

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Kreis

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Gemeinde

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahln

1..1

Grundstück

+getFläche() : Zahl+getBesitzer() : Person

-Besitzer : Person-Fläche : Zahl

n

1..1

1..1

n

Eine Komposition flächenhafter Objekte

16

Wichtige Beziehungen (II):Generalisierung und

Spezialisierung• Die „GeomFigur“ ist ein

allgemeineres Konzept als „Dreieck,“ „Kreis“ oder „Rechteck“

• GeomFigur ist Oberklasse,Dreieck, Kreis und Rechteck sind Unterklassen

• Unterklassen erben die Attribute der Oberklasse und fügen ggf. weitere hinzu

GeomFigur

Dreieck Kreis Rechteck

17

Vererbung

• Generalisierung und Spezialisierung sind Abstraktionsprinzipien zur hierarchischen Strukturierung der Semantik eines Modells

• Generalisierung und Spezialisierung beschreiben eine „taxonomische“ (systematische) Beziehungen zwischen einem allgemeinen und einem speziellen Element, wobei das speziellere weitere Eigenschaften hinzufügt und sich kompatibel zum allgemeinen verhält

18

Und was ist mit Methoden?GeomFigur

+anzeigen()+entfernen()+verschieben()

-Mittelpunkt : Punkt-sichtbar : Boolean

Dreieck

+anzeigen()+entfernen()

-a : Zahl-b : Zahl-c : Zahl

Kreis

anzeigen() entfernen()

-radius : Zahl

Rechteck

anzeigen() entfernen()

-a : Zahl-b : Zahl

Methoden werden vererbt oder überschrieben

19

Land

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Kreis

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Gemeinde

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahln

1..1

Grundstück

+getFläche() : Zahl+getBesitzer() : Person

-Besitzer : Person-Fläche : Zahl

n

1..1

n

1..1

Übung: Anwendung der Generalisierung auf Land, Kreis, Gemeinde