PHP - Kapselung

Kapselung ist eines der grundlegenden Prinzipien der objektorientierten Programmierung (OOP). Sie bezieht sich auf das Zusammenfassen von Daten mit den Methoden, die auf diese Daten zugreifen. In PHP kann die Kapselung durch die Verwendung von Klassen und Zugriffsmodifikatoren wie public, private und protected erreicht werden. Dieses Tutorial wird Sie durch die Grundlagen der Kapselung in PHP führen, beginnend mit public-Mitgliedern, dann zu privaten Mitgliedern übergehen und schließlich die geschützten Mitglieder abdecken.

PHP - Encapsulation

Public-Mitglieder

Public-Mitglieder sind von überall zugänglich, sowohl innen als auch außen in der Klasse. Sie werden mit dem Schlüsselwort public deklariert. Hier ist ein Beispiel für eine einfache Klasse mit einem public-Mitglied:

class Car {
public $color;

public function setColor($color) {
$this->color = $color;
}

public function getColor() {
return $this->color;
}
}

$myCar = new Car();
$myCar->setColor("rot");
echo "Mein Auto ist " . $myCar->getColor() . "."; // Ausgabe: Mein Auto ist rot.

In diesem Beispiel haben wir eine Car-Klasse mit einem public-Eigenschaft $color und zwei public-Methoden setColor() und getColor(). Wir können die Farbe des Autos leicht von außerhalb der Klasse setzen und abrufen.

Private-Mitglieder

Private-Mitglieder sind nur innerhalb der Klasse, in der sie definiert sind, zugänglich. Sie werden mit dem Schlüsselwort private deklariert. Hier ist ein Beispiel für eine Klasse mit einem privaten Mitglied:

class BankAccount {
private $balance;

public function __construct($initialBalance) {
$this->balance = $initialBalance;
}

public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount;
}
}

public function getBalance() {
return $this->balance;
}
}

$myAccount = new BankAccount(100);
$myAccount->deposit(50);
echo "Mein Kontostand ist " . $myAccount->getBalance() . "."; // Ausgabe: Mein Kontostand ist 150.

In diesem Beispiel haben wir eine BankAccount-Klasse mit einer privaten Eigenschaft $balance und zwei public-Methoden deposit() und getBalance(). Die Eigenschaft $balance ist nicht direkt von außerhalb der Klasse zugänglich, aber wir können sie mit der deposit()-Methode manipulieren und ihren Wert mit der getBalance()-Methode abrufen.

Geschützte Mitglieder

Geschützte Mitglieder sind innerhalb der Klasse, in der sie definiert sind, und auch in beliebigen Unterklassen zugänglich. Sie werden mit dem Schlüsselwort protected deklariert. Hier ist ein Beispiel für eine Klasse mit einem geschützten Mitglied:

class Animal {
protected $name;

public function __construct($name) {
$this->name = $name;
}
}

class Dog extends Animal {
public function bark() {
echo "Wuff! Ich bin " . $this->name . ".";
}
}

$myDog = new Dog("Buddy");
$myDog->bark(); // Ausgabe: Wuff! Ich bin Buddy.

In diesem Beispiel haben wir eine Animal-Klasse mit einer geschützten Eigenschaft $name. Die Dog-Klasse erweitert die Animal-Klasse und hat Zugang zur $name-Eigenschaft, da sie geschützt ist. Wir können die $name-Eigenschaft innerhalb der Dog-Klasse verwenden, um die bark()-Methode zu implementieren.

Schlussfolgerung

Kapselung ist ein entscheidendes Konzept in der OOP, das dazu beiträgt, die Integrität der Daten durch die Einschränkung des direkten Zugriffs darauf zu erhalten. Durch die Verwendung von Zugriffsmodifikatoren wie public, private und protected können Sie steuern, wie auf Ihre Daten zugegriffen und verändert wird. Das Verständnis der Kapselung wird Ihnen helfen, robuster und wartbarer Code in PHP und anderen OOP-Sprachen zu schreiben.

Credits: Image by storyset