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.