Wrapper Klassen
Wrapper-Klassen kapseln primitive Datentypen, so dass diese bei Bedarf als Objekte gespeichert oder auf andere Weise verarbeitet werden können
Programmhierarchie
Zugriffsmodifikatoren
Modifikatoren: public > protected > (default) > private
Zugriffsebenen: Welt > Unterklasse > Paket > Klasse
Objektorientierung
Die Objektorientierung (OO) dient der Beschreibung von Problemumgebungen, bei der einzelne Komponenten durch (Daten-) Objekte modelliert werden. Zu ihrer Beschreibung werden nicht nur deren Eigenschaften (Attribute) herangezogen, sondern auch die zugehörigen Operationen (Methoden), die auf oder mit diesen Objekten ausgeführt werden können
Objekt
Gedanklich oder reale Einheit in der Umwelt oder in Software (Datenobjekte)
Charakterisiert durch:
Identität: Ausprägung bzw. Instanz einer Klasse
Datenaspekt: Attribute bzw. Eigenschaften
Handlungsaspekt: Verhalten, gegeben durch die Methoden des Objekts
Klasse
Einheit, anhand der die Eigenschaften und das Verhalten der ausgeprägten Objekte beschrieben werden
Können untereinander in einer Klassenhierarchie (Taxonomie) stehen (Vererbung)
Methode
Programm zu einem Programmschritt
Bearbeitung einer empfangenen Nachricht
Änderung des Zustands des Adressaten
Nachricht
“Einheit”, aus der alle Interaktionen zwischen Objekten aufgebaut werden
Im Prinzip ein Methodenaufruf
Grundprinzipien der Objektorientierung
Instanziierung
Kapselung
Vererbung
Polymorphismus
Als Instanziierung/ Instanziieren bezeichnet man das erzeugen eines Objekts anhand einer bestimmten Klasse, die eine (abstrakte) Beschreibung darstellt. Die Instanz einer Klasse ist ein konkretes Exemplar bzw. eine konkrete Ausprägung der Klasse
Die Datenkapselung erlaubt das Abschotten der internen Implementierung von Klassen vor direktem externem Zugriff. Dieser darf nur über eine explizit definierte Schnittstelle erfolgen, um ihn unabhängig von den Implementierungsdetails zu machen
“Data Hiding”
Einschränkung der Zugriffsrechte zwischen verschiedenen Ebenen möglich
Zugriffsrechte können auf einzelne Attribute, Methoden (oder sogar Klassen) angewendet werden
Klassen können von anderen Klassen abgeleitet werden. Dabei erbt die Klasse, die Attribute und Methoden von der Basisklasse
Weitergabe von Merkmalen (Attribute, Methoden) an andere Klassen, bzw. an anderes Objekt
Unter Polymorphismus versteht man die Fähigkeit einer Objektreferenz, Objekte seiner Unterklasse zu referenzieren und sich abhängig davon zu verhalten
UML
Unified Modeling Language
UML ist keine Methode, sondern eine Notation (Beschreibungstechnik)
bzw. eine Sammlung von 14 verschiedenen Diagrammtypen/ Notationen für unterschiedliche Beschreibungszwecke von Software und Softwaresystemen
UML Diagrammtypen
Strukturdiagramme
Klassen- bzw. Instanzdiagrame: Der wichtigste Datentyp der UML! Er beschreibt die statische Struktur der Software, die in der OO-Welt aus einer Vielzahl von Klassen besteht, die in Beziehung zueinander stehen
Verhaltensdiagramme
Anwendungsfalldiagramme: Abstrekte Beschreibung des Zusammenwirkens von Akteuren mit einem System. Dabei wird das System als Black-Box (keine internen Implementierungsdetails) betrachtet
Interaktionsdiagramme (Sequenz- oder Kommunikationsdiagramme): Graphische Darstellung eines Szenarios mit Schwerpunkt auf dem zeitlichen Verlauf
Aktivitätsdiagramme: sie zeigen Abfolgen von Aktivitäten im System
Zustandsdiagramme: sie zeigen die ABfolge von (internen) Zuständen, die ein Objekt im Laufe eines Szenarios animmt
Assoziationen
Eine Assoziation zwischen zwei Klassen K1 und K2 ist eine Beschreibung der Tatsache, dass die Instanzen der beiden Klassen in einer fachlichen wesentlichen Beziehung zueinander stehen
Kardinalitäten von Assoziationen
An jedem Ende der Verbindungslinie kann die Kardinalität vermerkt werden, die angibt, mit wie vielen Objekten der Klasse an diesem Ende der Linie die Assoziationsbeziehung zustande kommt
Aggregation und Komposition
Aggregationen und Komposititonen sind spezielle Assoziationen, die “hat-eine”-Beziehung bzw. “ist-Teil-von” Beziehungen darstellen
Aggregation: “Teile” des “Ganzen” können auch einzeln existieren oder sogar von anderen Klassen mitbenutzt werden
umgangsprachlich: “besteht aus” oder “hat”
Komposition: die “Teile” existieren nur, wenn auch das “Ganze” existiert
Zuletzt geändertvor einem Jahr