1 idee von oo punkt bezugssystem x breite länge y transform(..) sichtbarkeit einschränken...
TRANSCRIPT
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