OOP in PHP – Teil 3: Eigenschaften, Methoden und Sichtbarkeiten

Nachdem wir die Definition von Eigenschaften und Methoden und auch die ersten Sichtbarkeiten im letzten Teil der Serie bereits kennengelernt haben schauen wir uns das dieses Mal nochmal genau an, denn das sind die Grundlagen der objektorientierten Programmierung. Darauf baut das gesamte Konzept auf, daher ist es wichtig, diese Prinzipien zu verstehen und zu verinnerlichen.

Alles rund um Eigenschaften

Die Eigenschaften einer Klasse beziehungsweise eines Objekts sind die Variablen in der normalen Programmierung. Eine Klasse kann beliebig viele Eigenschaften haben, die sie an jedes einzelne Objekt, das daraus erzeugt wird, weitergibt. Jedes Objekt kann aber für jede Eigenschaft einen eigenen Wert haben.

Nehmen wir als Beispiel die Eigenschaft Farbe. Ich kann beliebig viele Objekte haben, aber jedes kann eine andere Farbe haben.

Eigenschaften werden in einer Klasse folgendermaßen definiert:

Zugreifen kann ich auf diese Eigenschaften dann über ein Objekt. Eine Eigenschaft ist immer einem bestimmten Objekt zugewiesen. Erzeuge ich mir also mit dem new Operator ein neues Objekt der Klasse Beispiel kann ich so auf die Eigenschaften oben zugreifen:

Auch hier sei nochmal erwähnt: Nach dem Pfeiloperator -> benötigen wir KEIN Dollarzeichen um auf eine Eigenschaft zuzugreifen!

Methoden sind Aktionen

Die Methoden unseres Objekts stehen für Dinge, die das Objekt tun kann oder die mit dem Objekt getan werden können. Nehmen wir als Beispiel die Klasse Auto. Ein Objekt der Klasse Auto kann zum Beispiel fahren, parken, blinken und vieles mehr. All das wären Methoden, denn es sind Aktionen die ausgeführt werden. Im Gegensatz dazu wären die Eigenschaften eines Autos: Anzahl Räder, Pferdestärken, Anzahl Türen, Farbe etc.

In Programmierersprache sind diese Aktionen Funktionen, die ausgeführt werden können. Diese Funktionen werden in der Klasse definiert, werden aber später immer auf ein Objekt bezogen ausgeführt. Innerhalb einer Methode kann ich sowohl lokale Variablen anlegen aber auch auf die Eigenschaften des Objekts zugreifen, von dem die Methode in diesem Moment aufgerufen wird.

Aber fangen wir zuerst mit der Definition und dem Aufrufen einer Methode an:

Auch bei Methoden wird der Pfeiloperator für den Aufruf benutzt. Generell funktioniert eine Methode wie jede andere Funktion auch, es gibt also Parameter und Rückgabewerte. Der einzige Unterschied liegt im Aufruf über ein Objekt, wir haben also die Möglichkeit, das zugehörige Objekt mit der Spezialvariable $this anzusteuern.

Auch andere Methoden des eigenen Objekts können problemlos aufgerufen werden:

 

 

Sichtbarkeiten bestimmen den Zugriff

Die Sichtbarkeiten bei der Definition von Eigenschaften und Methoden regeln den möglichen Zugriff – das bedeutet ganz einfach: Von wo aus kann ich auf diese Eigenschaft zugreifen beziehungsweise diese Methode aufrufen?

Das einfachste Beispiel ist hierbei die Sichtbarkeit public. Diese sorgt dafür, dass die betroffene Eigenschaft / Methode von überall aus zugänglich ist. Die Standardsichtbarkeit für eine Methode ist übrigens public, falls keine Sichtbarkeit angegeben wird. Eigenschaften benötigen zwingend eine explizit angegebene Sichtbarkeit.

Das Gegenteil von public ist in diesem Fall die Sichtbarkeit private. Der Zugriff wird hier auf innerhalb der eigenen Klasse beschränkt, das heißt auf private Attribute können wir NUR aus Methoden innerhalb der Klasse, in der sie definiert wurden, zugreifen. Genauso können private Methoden nur aus anderen Methoden innerhalb der eigenen Klasse aufgerufen werden.

Eine weitere Sichtbarkeit kann mit dem Schlüsselwort protected eingestellt werden. Diese stellt quasi eine Mischung aus public und private dar, und zwar in dem Sinne, dass der Zugriff damit auf die eigene Klasse und etwaige Kindklassen beschränkt wird. Hier kommen wir zum Thema Vererbung, dem später (mindestens) ein eigener Artikel gewidmet wird, weshalb wir die Erklärung von protected auch bis dahin zurückstellen.

5 Kommentare zu “OOP in PHP – Teil 3: Eigenschaften, Methoden und Sichtbarkeiten

  1. Hallo,
    bin über dein Blog zufällig gestossen und fand ihn so interessant das ich ihn gleich mal als Lesezeichen markiert habe. Außerdem betreibe ich selber einen Blog und weiß wie schön es ist wenn User auch Feedback zum Blog geben 🙂

    Jedenfalls frage ich mich für das Klassen benutzt werden sollen? Ich weiß zwar wie man Sie verwendet, sehe den Vorteil aber nicht. Wenn ich nun z.B. eine crypt.php Datei habe in der mir die Passwörter und Emails in einen SHA1-Hash umgewandelt werden, warum kann ich das nicht genauso gut als Funktion schreiben (ohne Klasse) und einfach Username etc. als Parameter übergeben?

  2. Eine super Einführung in OOP. Ausführlich und mit leicht verständlichen Beispielen. Ich würde mich sehr über einen 4. Teil freuen 🙂

    Grüße
    Schlachtvieh

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*