Junior
Was umfasst die Kapselung noch außer der Datenverbergung?
sobes.tech KI
Antwort von AI
Neben dem Verbergen von Daten (Verbergen der internen Implementierung des Objekts vor der Außenwelt) umfasst die Kapselung:
- Die Vereinigung von Daten und Methoden, die mit diesen Daten arbeiten, in einem einzigen Objekt. Dies schafft eigenständige Programmeinheiten.
- Zugriffskontrolle auf die Daten. Mit Hilfe der Zugriffsspezifizierer (
public,protected,private) wird festgelegt, wie andere Objekte mit dem internen Zustand des Objekts interagieren können. Dies ermöglicht die Gewährleistung der Datenintegrität und verhindert inkorrekte Änderungen. - Reduzierung der Kohäsion. Ein hohes Maß an Kapselung trägt dazu bei, dass Änderungen innerhalb eines Objekts minimale Auswirkungen auf andere Teile des Systems haben.
Beispiel:
<?php
class BankAccount {
private $balance; // Daten verbergen
public function __construct($initialBalance) {
if ($initialBalance >= 0) {
$this->balance = $initialBalance;
} else {
$this->balance = 0;
}
}
public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount; // Methoden arbeiten mit Daten
}
}
public function withdraw($amount) {
if ($amount > 0 && $amount <= $this->balance) {
$this->balance -= $amount; // Zugriffskontrolle und Integrität
return true;
}
return false;
}
public function getBalance() {
return $this->balance; // Kontrollierter Zugriff
}
}
?>
In diesem Beispiel wird die Datenverbergung (private $balance) mit der Bereitstellung öffentlicher Methoden (deposit, withdraw, getBalance) kombiniert, die den Zugriff und die Änderungen an diesen Daten kontrollieren. Dies verbindet Daten und Logik in einem einzigen Objekt und gewährleistet die Kapselung.