Objektorientierte Programmierung

Bei der Objektorientierten Programmierung(OOP) sollen Daten zusammengefasst um Programmierung mit größeren Datenmengen zu vereinfachen. OOP lohnt sich daher haupsächlich bei größeren Projekten. Im folgenden Kapitel wird die Funktionsweise von OOP mit PHP erklärt.

Die objektorientierte Programmierung besteht aus vier Grundelementen:

Klasse, Objekt, Eigenschaft, Methode

Klassen, Objekte, Eigenschaften und Methoden

Klasse:

Eine Klasse beschreibt Eigenschaften und Methoden eines Objektes und wird daher benötigt um ein Objekt zu erstellen.

Objekt:

Ein Objekt verfügt über Eigenschaften und Methoden. (Genauere Erklärung folgt noch.)

Eigenschaft:

Eigenschaften sind -wie der Name schon sagt- Eigenschaften von Objekten. Sie sind vergleichbar mit Variablen.

Methode:

Methoden sind eine Art Funktionen, die ein Objekt nutzen kann.

Beispiel

Das alles erscheint noch etwas abstrakt, es lässt sich aber einfach anhand eines Beispiels erläutern.

Nehmen wir zum Beispiel wortwörtlich eine Klasse als Klasse, eine Informatikklasse. Die Objekte wären dabei die Schüler mit ihren Eigenschaften und Methoden (=was die Schüler machen).

In diesem Beispiel kann man das Geschlecht und die Haarfarbe der Schüler aus dem Kurs Inf1 bestimmen. Die Schüler können arbeiten und in Facebook gehen. Bei Olaf hat man bestimmt, dass er ein Mann ist und schwarze Haare hat.

In PHP

In PHP sieht das alles folgendermaßen aus:

class Inf //Definition der Klasse { var $Geschlecht; //Eigenschaft 1 var $Haarfarbe; //Eigenschaft 2 function arbeiten($dauer) //Methode 1 { } function Facebook() //Methode 2 { } }

Erzeugen eines Objekts

class Inf {...} $Olaf = new Inf;

Damit ist Olaf zwar ein Schüler des Informatikkurses, hat aber noch keine Haarfarbe (und Geschlecht?).

class Inf {...} $Olaf = new Inf; $Olaf -> Geschlecht = "Mann"; //Kein '$' bei Geschlecht

Glückwunsch Olaf, jetzt bist du ein Mann.

Ein wichtiges Element im OOP ist das 'this' verweist auf das eigene Objekt und wird vor allem bei den Methoden wichtig, vor allem weil mehrere Objekte eine Methode Nutzen können. Wie genau das aussieht zeigt dieses Beispiel

class Inf { var $Geschlecht; var $Haarfarbe; function haarfarbe($farbe) { $this -> Haarfarbe = $farbe; } } $Olaf = new Inf; $Olaf -> Geschlecht = "Mann"; $Olaf -> haarfarbe("Schwarz");

Übungen

Erstelle ein Programm, das die Seitenlängen eines Quaders abfragt und diesen Quader als Objekt einer Klasse erstellt.

Erstelle Methoden, die Oberfläche und Volumen des Quaders berechnen und ausgeben.

Zusatzaufgaben

Erweitere dein Programm so, dass es auch regelmäßige quadratische Pyramiden als Objekte erstellen kann.

Je nach Interesse kannst du dich über Vererbung, Kapselung, und Klonen im OOP informieren.