Objektorientierung
Gliederung Was ist Objektorientierung? Objektorientierte Sprachen Was ist Datenkapselung? Vorteile der Datenkapselung Nachteile der Datenkapselung Grundlegende Begriffe Was ist Vererbung? Was ist Polymorphie?
Was ist Objektorientierung? Simula-67: erste objektorientierte Programmiersprache Art Programmierung, um praktischen Erfordernissen besser gerecht zu werden Keine Trennung von Datenstrukturen und aktiven Funktionen. Grundelemente: Datenkapselung, Polymorphie Vererbung.
Objektorientierte Sprachen Smalltalk C# C++ Simula-67 Eiffel Ruby Java Python Pascal Fortran
Was ist Datenkapselung? Schutz von Klassen und Attributen vor unerwünschten Zugriffen Kapsel versteckt Teile des Objekts Durchlässige Stellen der Kapsel nennt man Schnittstellen.
Vorteile der Datenkapselung Änderung der Implementierung möglich, ohne die Zusammenarbeit mit anderen Klassen zu beeinträchtigen Erhöhte Übersichtlichkeit Einzelne innere Zusammenhänge veränderbar, ohne es in anderen Programmteilen zu ändern Verbesserte Testbarkeit, Stabilität und Änderbarkeit der Software bzw. deren Teile (Module) Bei Zugriff über eine Zugriffsfunktion spielt es von außen keine Rolle, ob diese Funktion im inneren der Klasse existiert.
Nachteile der Datenkapselung In Abhängigkeit vom Anwendungsfall Geschwindigkeitseinbußen durch den Aufruf der Methode. Zusätzlicher Programmieraufwand für die Erstellung der Zugriffsmethoden.
Grundlegende Begriffe Klassen: Vorlagen, aus denen Instanzen genannte Objekte zur Laufzeit erzeugt werden. Abstraktion: Als Abstraktion bezeichnet man jedes Objekt im System, dass als abstraktes Modell eines Akteurs betrachtet werden kann. Feedback: Verschiedene Objekte kommunizieren über einen Nachricht-Antwort-Mechanismus. Attribute: Objekte (Hosen, Jacken, Pullover, ...) besitzen verschiedene Eigenschaften (Farbe, Größe, Material,...). Diese Eigenschaften eines Objekts heißen Attribute
Was ist Vererbung? Schritt zur neuen Konstrukte (Klasse) Zwei verschiedene Arten von Vererbung Schnittstellenvererbung Schnittstellenvererbung „erbt“ eine abgeleitete Klasse den code von der Methoden Implementationsvererbung abgeleitete Klasse erbt auch die Implementierung von einer oder mehreren "Anfangsklassen" Klasse übernimmt Merkmale einer alten Klasse
Was ist Vererbung? „Verebende“ Klasse = „Basisklasse“ oder „Superklasse“ „Erbende“ Klasse = „abgeleitete Klasse“ oder „Subklasse“ Mehrfachvererbung: eine Klasse erbt mehrere Merkmale einer anderen Klasse
ENDE