Facebook
Twitter
Google+
Kommentare
0

Sichtbarkeit in der OOP

Ich hoffe mal, dass jeder hier Sichtbarkeiten kennt. In der OOP werden sie auf Attribute und Methoden angewendet. Als Beispiel kann man eine Funktion public deklarieren und somit kann jeder von außen auf diese zugreifen, bei private kann nur die Klasse selbst und bei protected können auch abgeleitete Klassen damit hantieren. In der Vorstellung vieler oder der meisten Programmierer ist es aber anders, für sie ist es eine Sichtbarkeit auf Objekt Ebene. Das heißt ich habe ein Objekte und kann darin auch auf die Methoden zugreifen, die ich über die Klassenhierarchie geerbt habe. Ein kleines Beispiel wäre:

class A
{
  protected function doSth( )
  {
  }
}

class B extends A
{
  public function doSthElse( )
  {
    parent::doSth( );
  }
}
$b = new B;
$b->doSth( ); // Fehler
$b->doSthElse( ); // Funktioniert

Soweit so gut, hier sind wir ja noch alle auf einem Nenner. Das aber folgendes Konstrukt auch funktioniert, wissen die wenigstens. Zumindest eine repräsentative Umfrage in unserem Team ergab diese Vermutung (2 von 2 nicht gewusst).

Class B extends A
{
  public function doSthElse( )
  {
   $a = new A;
   $a->doSth( );
  }
}

Obwohl ich hier von außen auf die Methode doSth( ) zugreifen will und diese protected ist, habe ich das Recht sie zu verwenden. Dies liegt natürlich an dem anderen Kontext, in dem wir hier handeln. Aber hier kann man einfach sehen, dass nur die Klassen relevant für die Sichtbarkeiten sind und nicht die Objekte mit denen ich gerade jongliere. Diese Sichtweise auf Klassen wird übrigens in den meisten OO Programmiersprachen geteilt.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen