Version [22756]
Dies ist eine alte Version von ObjProg02Kapselung erstellt von RonnyGertler am 2013-03-28 23:08:07.
Objektorientierte Programmierung - Kapitel 2 - Datenabstraktion und Datenkapselung
Inhalte von Dr. E. Nadobnyh
2.1. Klasse
Datentyp und Klasse
Ein Datentyp ist eine Zusammenfassung von Wertebereichen und der darauf anwendbaren Operationen.
Ein Typ stellt das Muster dar, nach dem beliebig viele Variablen (Instanzen, Exemplaren, Objekten) erzeugt werden können.
Es gibt in C++ eingebaute Datentypen (z.B. int, float usw.) und benutzerdefinierte Datentypen. Eine Klasse ist ein benutzerdefinierter Datentyp.
Eine Klasse ist eine Typbeschreibung, die folgende Merkmale enthält: ´
1) Daten (auch Attribute und Eigenschaften genannt),
2) Operationen (auch Methoden, Elementfunktionen und Fähigkeiten genannt).
Datenabstraktion
Die Abstraktion ist ein gängiges Mittel, Komplexität zu reduzieren. Die komplexen Dinge werden auf das Wesentliche reduziert und mit einem Oberbegriff versehen.Die Sprache C++ unterstützt die Datenabstraktion durch den Begriff Klasse.
Eine Klasse ermöglicht:
1) mehrere zusammengehörige Daten (Attribute) in einen Datentyp zu bündeln und
2) den Zugriff auf die Attribute nicht direkt, sondern über die Methoden durchzuführen.
Vorteile der Datenabstraktion
1) Die interne Darstellung der Daten braucht das Anwendungsprogramm nicht zu kennen.
2) Der Zugriff auf die Daten erfolgt in kontrollierter Weise über die Methoden.
3) Bei Bedarf kann die interne Darstellung der Daten auch geändert werden, ohne das Anwendungsprogramm davon betroffen wird.
Datenkapselung
Attribute und Methoden der Klasse können als geschützt oder öffentlich deklariert werden. Normaleweise werden Attribute als private und Methoden als public d.h. öffentlich deklariert.
Ohne Datenkapselung können die Vorteile der Datenabstraktion durch das sogenannte Vorbeiprogrammieren an Methoden zerstört werden.
Beispiel: Ein Element auf Stack legen
Prozedurale Lösung
Prozedurale Lösung mit Datenabstraktion
Lösung mit Datenabstraktion und Datenkapselung
Schnittstelle einer Klasse
Die Deklarationen von allen public- Methoden bilden die öffentliche Schnittstelle (Interface). Durch die öffentliche Schnittstelle kommuniziert ein Objekt mit der Umgebung.
Die Schnittstelle sagt nichts über die Implementierung (über die interne Darstellung der Daten) aus. Die Datenabstraktion realisiert das Prinzip der Trennung von Schnittstelle und Implementierung.
Das Anwendungsprogramm merkt keine Veränderungen in der Implementierung, wenn die Schnittstelle dieselbe bleibt.
ADT
Deklaration, Definition und Verwendung