Objekte
- jedes Objekt hat Zustand, Verhalten, Identität
- viele Objekte gleicher Art möglich
- daher Gruppierung in Klassen bei gleicher Datenstrutktur und gleichem Verhalten
- Instanz einer Klasse
- Kapselung von Zustand und Verhalten (Geheimhaltungsprinzip)
- Zugriff auf Attritbute ausschließlich über Methoden (s.o.)
Relationen
- Assoziationen
- strukturelle Beziehungen zwischen den Objekten
- spez. Aggregation
- besteht-aus/ist-Teil-von-Relation
- Bsp. Auto hat Reifen, Türen, Motor, etc.
- Bez. Raute – leer und halbvoll
- [Name],Leserichtung Pfeilspitze,
- [Rolle] kann Kardinalität haben
- 1 – genau 1
- 0..2 – zwischen 0 und 2
- * 0 oder mehr
- 1,2,3,6 – 1 XOR 2 XOR 3 XOR 6
- 1,2,6..* – 1 XOR 2 XOR min. 6
- Spezialisierung / Generalisierung
- Beziehungen zwischen allg. und spez. Klassen
- nutzt Vererbung
- –> siehe Vererbung/Inheritance
Klasse
- neuer Referenztyp
- eindeutiger Name / Identifier
- ggfs. Oberklasse / Super
- ggfs. Interfaces
- Erzeugung einer neuen Instanz über new
- kann mehrer Konstruktoren unterschiedlicher Signatur haben
Konstruktoren
- public, protected , private
- kein Rückgabetyp/-wert
- expliziter Aufruf nur aus einem anderen K. über this oder super
- Name identisch mit Klassenname
- falls kein K. daklariert ist, wird Standardk. ohne Params verwendet
Zugriffskontrolle
+ public – für alle zugreifbar
– private – nur für eigene Klasse zugreifbar
# protected – nur für inheratiance & package zugreifbar (Unterklassen, andere Klassen im gleichen Paket)
Klassenattribute
- in UML durch Unterstreichen gekennzeichnet
- in Java durch static deklariert
[…] – UML, Objekte, Klassen, […]