OOP PHP5 - Grundlagen - Vererbung - Getter- und Settermethoden
1. Probleme und Ansichten
Im vorherigen Abschnitt habe ich euch eine ziemlich unsaubere Umsetzung gezeigt, da es zwei Möglichkeiten gab, eine Eigenschaft zu
ändern. Darum hat sich mittlerweile die Ansicht verbreitet, dass man die Eigenschaften eines Objektes nur über Methoden ändern oder
abrufen darf. Deshalb wird dafür auch die Sichtbarkeitsstufe gerne auf private
gesetzt. Das hat zwar mit der eigentlichen
Vererbung nichts zu tun, ich erwähne es hier trotzdem.
2. Die Elternklasse
Diesmal kümmern wir uns nicht um die Säugetiere und lassen auch mal die Frauen zu ihrem Recht kommen. Also, wir haben eine Klasse
Mensch
mit der privaten Eigenschaft name
. Dazu gibt es einmal eine Methode, um selbige zu setzen und eine,
um sie zurückzuliefern.
class Mensch
{
private $name;
protected function setName($value)
{
$this -> name = $value;
}
protected function getName()
{
return $this -> name;
}
}
setName
ist hier die Setter-Methode, da man mit ihr der Eigenschaft name
einen Wert verpassen kann.
getName
dagegen ist die Getter-Methode, da man sich über sie den Wert der Eigenschaft holen kann.
3. Die Kindklasse
Hier gehe ich jetzt einfach mal davon aus, dass die daraus erzeugten Objekte einen Zugriff auf ihren Namen haben müssen. Das geht auch
anders, ist aber erst mal nicht von Belang. Die abgeleitete Klasse Frau
muss dementsprechend ebenfalls zwei Methoden
dafür bereitstellen.
class Frau extends Mensch
{
public function setzNamen($value)
{
$this -> setName($value);
}
public function holNamen()
{
return $this -> getName();
}
}
4. Das Objekt
... setzt nun seinen, oder genauer gesagt, ihren Namen über die Methode setzNamen
der Klasse Frau
. Und die
nutzt nun die Methode setName
der Elternklasse Mensch
, um den Wert tatsächlich zu ändern. Wenn es darum geht,
den Namen aus dem Objekt heraus aufzurufen, so geschieht das über holNamen
und getName
. Der Weg ist derselbe.
$doerte = new Frau;
$doerte -> setzNamen('Dörte');
echo $doerte -> holNamen();
5. Sinn und Zweck
Wenn ich mir die Diskussion in diversen Foren zu diesem Thema ansehe, so gibt es zwei verfeindete Lager, die beide ihre Ansichten mit brachialer Gewalt verteidigen. Die einen halten diese Lösung für den Königsweg, die anderen für eine direkte Fahrt in die Hölle. Ich persönlich bin in diesem Fall neutral. Denn diese Methode kann sehr hilfreich sein, aber auch recht hinderlich. Ach, bildet euch einfach selber eine eigene Meinung dazu.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt