Kapselung

Kategorie: Programmierung

Definition

Kapselung ist ein Grundprinzip der objektorientierten Programmierung (OOP). Dabei werden Daten (Attribute) und die dazugehörigen Methoden in einer Klasse zusammengefasst und vor direktem Zugriff von außen geschützt.

Warum Kapselung?

Kapselung schützt die internen Daten eines Objekts vor unerlaubten Änderungen. Dadurch wird die Datenintegrität sichergestellt und Fehler werden reduziert.

Grundidee

Attribute sollten nicht direkt von außen verändert werden können. Stattdessen erfolgt der Zugriff über spezielle Methoden.

Praxisbeispiel Bankkonto

Ein Bankkonto besitzt ein Guthaben. Das Guthaben sollte nicht beliebig von außen verändert werden können. Stattdessen erfolgen Änderungen über Methoden wie: • einzahlen() • auszahlen()

Öffentliche Attribute (public)

Öffentliche Attribute können von überall gelesen und verändert werden. Dies wird häufig vermieden, da wichtige Daten dadurch ungeschützt sind.

Private Attribute (private)

Private Attribute können nur innerhalb der eigenen Klasse verwendet werden. Von außen ist kein direkter Zugriff möglich.

Beispiel ohne Kapselung

class Konto { guthaben = 1000; } konto.guthaben = -5000; Problem: Ungültige Werte können gespeichert werden.

Beispiel mit Kapselung

class Konto { private guthaben = 1000; }

Getter

Getter ermöglichen das kontrollierte Auslesen privater Daten. Beispiel: getGuthaben() { return this.guthaben; }

Setter

Setter ermöglichen das kontrollierte Ändern privater Daten. Dabei können Eingaben geprüft werden.

Beispiel Setter

setGuthaben(wert: number) { if (wert >= 0) { this.guthaben = wert; } }

Zugriffsmodifizierer

public Überall zugreifbar private Nur innerhalb der Klasse zugreifbar protected Innerhalb der Klasse und ihrer Unterklassen zugreifbar

Datenintegrität

Kapselung verhindert, dass Objekte in einen ungültigen Zustand versetzt werden. Beispielsweise kann verhindert werden, dass ein Kontostand negativ wird.

Vorteile

✓ Schutz sensibler Daten ✓ Höhere Sicherheit ✓ Bessere Wartbarkeit ✓ Fehlervermeidung ✓ Klare Schnittstellen

Nachteile

✗ Mehr Methoden notwendig ✗ Etwas höherer Programmieraufwand

Praxisbeispiel Benutzerkonto

Passwörter werden normalerweise als private Attribute gespeichert. Ein direkter Zugriff von außen wäre ein Sicherheitsrisiko.

Kapselung und OOP

Kapselung gehört neben Vererbung, Polymorphie und Abstraktion zu den wichtigsten Konzepten der objektorientierten Programmierung.

Typische Prüfungsfrage

Was versteht man unter Kapselung? Das Zusammenfassen von Daten und Methoden in einer Klasse sowie der Schutz interner Daten vor direktem Zugriff.

Typische Prüfungsfrage

Warum werden Attribute häufig als private definiert? Um unerlaubte Änderungen zu verhindern und die Datenintegrität zu schützen.

Typische Prüfungsfrage

Welche Aufgabe haben Getter und Setter? Sie ermöglichen einen kontrollierten Zugriff auf private Attribute.

Merksatz

Kapselung schützt Daten vor direktem Zugriff und ermöglicht eine kontrollierte Verwaltung über Methoden.