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

19
1 Idee von OO Punkt Bezugssystem x Breite Länge y transform (..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisie rung

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

Page 1: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

1

Idee von OO

Punkt

Bezugssystem

xBreite

Länge

ytransform(..)

Sichtbarkeiteinschränken

Abstraktion

KapselungParametrisierung

Page 2: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

2

Kapselung

Punkt

Bezugssystem

xBreite

Länge

y

...

...setLänge

getLänge

setBreite

getBreite

getysety

transform()

weitere Zugriffsfunktionen

Page 3: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

3

Unsichtbar

Sichtbar

Page 4: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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

Page 5: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

5

Abschließend noch einmal zur Beschreibung von Klassen

Typen undInitialwerte sind optional

Page 6: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

6

Varianten der Notation

Klasse2

Klasse3

Klasse ohne Attributeund Operationen

Attribute und Methoden nicht dargestellt

Page 7: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

7

UML: Beziehungen

Flächen

Knoten

Kanten

begrenzen

begrenzen

Page 8: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

8

Beziehungen in UML - einführendes Beispiel

Page 9: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

9

• jedes Grundstück hat mindestens drei Kanten

• jede Kante begrenzt genau zwei Grundstücke

Name

Multiplizität

Page 10: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

10

Bezeichnung von Beziehungen

Klasse A Klasse BBeziehungsnameRolle ARolle B

Leserichtung

Page 11: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

11

Bezeichnung: Noch ein Beispiel

Firma Mitarbeiterarbeitgeber arbeitnehmer

beschäftigtarbeitet für

Page 12: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

12

Multiplizität von Beziehungen

Leserichtung

•eine Kante begrenzt genau 2 Grundstücke

•ein Grundstück hat mindestens 3 Kanten G1

G2

Page 13: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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..*

Page 14: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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

Page 15: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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

Page 16: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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

Page 17: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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

Page 18: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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

Page 19: 1 Idee von OO Punkt Bezugssystem x Breite Länge y transform(..) Sichtbarkeit einschränken Abstraktion Kapselung Parametrisierung.

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