Einführung

In der Objektorientierten Programmierung (OOP) gibt es vier Begriffe, die man sich merken sollte:

  • das Objekt
  • die Klasse
  • die Eigenschaft
  • die Methode

Die Klasse

Klassen sind eine Art Entwurfsmuster oder Bauplan. Klassen werden mit class klassenname { } oder class klassenname ($variable) {} definiert. Innerhalb der geschweiften Klammern befinden sich dann:

  • Variablen, die die Eigenschaften definieren und
  • Funktionen, welche innerhalb einer Klasse Methoden genannt werden.

Das Objekt

Objekte sind alles, was wir aus Klassen machen. Wenn Klassen also ein Entwurfsmuster oder Bauplan sind, dann sind Objekte die daraus resultierenden fertigen Häuser. Definiert wird das Ganze folgendermaßen: $objekt = new klasse; Objekte werden also mit dem Wörtchen new erzeugt.

Die Eigenschaft

Jedes Objekt in unserer Umwelt hat bestimmte Eigenschaften. Ein Haus kann groß oder klein, alt oder neu sein. Ein Ball kann klein oder groß, weiß oder bunt sein. Objekte haben also Eigenschaften. In der objektorientierten Programmierung nennt man das auch "Instanzvariablen", "Attribut" oder "Member". Ich persönlich bevorzuge den Begriff Eigenschaft, da er dies am besten beschreibt.

Die Methode

Methoden sind normale Funktionen innerhalb einer Klasse. Mit diesen Funktionen kann man etwas mit einer Klasse machen oder ihre Eigenschaften verändern. Man kann also z.B. ein Haus bauen oder abreißen, einen Ball kann man anmalen, aufpumpen und er kann springen.

Ein Beispiel

Im Folgenden soll ein Ball gebaut werden. Das Objekt ist also Ball. Die Klasse, also der Bauplan für den Ball, ist BallKlasse. Der Ball hat natürlich auch Eigenschaften, nämlich die Farbe oder Größe. Und man kann auch etwas mit dem Ball machen - ihn anmalen oder aufpumpen - und so die Eigenschaften ändern. Und los geht's:

class BallKlasse {
	public $farbe;
	public $groesse;
	
	public function anmalen($farbe) {
		$this->farbe = $farbe;
	}
	
	public function aufpumpen($luftmenge) {
		$this->groesse = $luftmenge;
	}
	
	public function beschreibe () {
		$beschreibung = "Die Farbe ist ".$this->farbe."\n";
		$beschreibung .= "Die Groesse ist ".$this->groesse."\n";
		return $beschreibung;
	}
}

$ball = new BallKlasse();
$ball->anmalen("weiss"); 
$ball->aufpumpen(1);
echo $ball->beschreibe(); // Die Farbe ist weiss. Die Groesse ist 1

Na super, die erste Klasse ist geschrieben und das erste Objekt ist erzeugt. War doch gar nicht so schwer :) Hm, aber trotzdem gibt es da ein paar Ungereimtheiten - warum gibt es da ein public und was soll das mit dem this? Und, wozu ist das -> da? Ganz einfach.