www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » Objektorientierte Programmierung in PHP » Beispiel Klasse/Objekt

Beispiel Klasse/Objekt

Nach der vielen Theorie nun zur Veranschaulichung ein Beispiel:

PHP-Quellcode: Beispiel Objektorientierte Programmierung in PHP
<?php
// die Klasse "Auto" definieren
class auto
{

    // eine Eigenschaft/Attribut festlegen
    var $benoetigter_kraftstoff;

    // eine Methode festlegen (nennt sich Funktion, 
    // ist aber in einer Klasse und 
    // wird somit als Methode bezeichnet) 
    function tankdeckel_oeffnen()
    {
        // Ihr Auto spricht mit Ihnen - wenn der
        // Tankdeckel geöffnet wird, sagt es, welchen
        // Kraftstoff es benötigt
        echo "<p>Bitte mit ";
        echo $this->benoetigter_kraftstoff;
        echo " betanken";
    }
}

// bisher passiert noch gar nichts,
// jetzt wird aus der Klasse ein Objekt erzeugt
$auto_1 = new auto;

// dem Auto wird nun der Kraftstoff zugewiesen,
// eine Eigenschaft (Attribut) wird definiert
$auto_1->benoetigter_kraftstoff = "Diesel";

// und nun wird das erste mal die Methode (Funktion)
// tankdeckel_oeffnen aufgerufen und das Auto sagt
// freudig, was es für Sprit benötigt
$auto_1->tankdeckel_oeffnen();
?>

Das mag für die wenige Funktion erscheinen, als schieße man auf Spatzen mit Kanonen (soll vorkommen). Interessant ist es, wenn wir nun für die ganze Familie die Autos erzeugen.

PHP-Quellcode: weitere Instanzen erzeugen
// das neues Objekt auto_2 wird "gekauft"
$auto_2 = new auto;
$auto_2->benoetigter_kraftstoff = "Super";

// das neues Objekt auto_3 wird erstellt
$auto_3 = new auto;
$auto_3->benoetigter_kraftstoff = "Ethanol";

// Wird nun mit Auto 3 tanken gegangen,
// erhält man den richtigen Hinweis,
// was das Auto schluckt mit:
$auto_3->tankdeckel_oeffnen();

Aufgabe

Ergänzen Sie das Beispiel oben, dass das Auto nicht nur sagt, was es für Treibstoff benötigt, sondern auch, was für eine Marke es ist (z. B. ein Benz, ein BMW, eine ABC-Klasse oder so).

Gedächtnis des Objektes

Jedes Objekt hat sein eigenes Gedächtnis (die Daten sind gekapselt) - im obigen Beispiel merkt sich das Auto nun, wie oft es in seinem Leben betankt wurde. Dazu benötigen wir eine weitere Eigenschaft (anzahl_betankungen) und die Methode tankdeckel_oeffnen wird erweitert (OK, nicht jedes Mal, wenn der Tankdeckel geöffnet wird, wird auch getankt - aber so ist es nett einfach)

PHP-Quellcode: Gedächtnis des Objektes
<?php
// die Klasse "Auto" definieren
class auto
{
    // eine Eigenschaft/Attribut festlegen
    var $benoetigter_kraftstoff;

    // Eigenschaft anzahl_betankung setzen und 
    // Start-Wert zuweisen
    var $anzahl_betankungen = 0;

    // eine Methode (flapsig Funktion) festlegen
    function tankdeckel_oeffnen()
    {
        // Ihr Auto spricht mit Ihnen - wenn der
        // Tankdeckel geöffnet wird, sagt es, welchen
        // Kraftstoff es benötigt
        echo "<p>Bitte mit ";
        echo $this->benoetigter_kraftstoff;
        echo " betanken";
        echo "<p>Ich wurde ";
        echo $this->anzahl_betankungen;
        echo " mal betankt";

        // Anzahl der betankungen wird um 1 erweitert
        $this->anzahl_betankungen++;
    }
}

// bisher passiert noch gar nichts,
// jetzt wird aus der Klasse ein Objekt erzeugt
$auto_1 = new auto;

// dem Auto wird nun der Kraftstoff zugewiesen,
// eine Eigenschaft (Attribut) wird definiert
$auto_1->benoetigter_kraftstoff = "Diesel";

// und nun wird das erste mal die Methode (Funktion)
// tankdeckel_oeffnen aufgerufen und das Auto sagt
// freudig, was es für Sprit benötigt
$auto_1->tankdeckel_oeffnen();

// Damit man das Gedächtnis des Objektes sieht
$auto_1->tankdeckel_oeffnen();
?>

Anwendung von Objektorientierter Programmierung oder Prozeduraler Programmierung

Bei einigen Programmen wird es nicht sinnvoll sein, diese objektorientiert zu erstellen, da wirklich mit Kanonen auf Spatzen geschossen wird, bei anderen Programmen wird es sehr wohl sinnvoll sein. Dies ist immer die Entscheidung des Programmierers. Wenn Sie sich verschiedene Programme von anderen Programmierern ansehen, werden Sie sich manchmal fragen, warum nicht objektorinentiert. Das kann verschiedene Gründe haben, wie z.B. dass das Ursprungsprogramm ganz ganz klein war und erst mit der Zeit in Größe und Komplexität gewachsen ist oder schlicht und ergreifend der entsprechende Programmierer nicht firm ist in Objektorientierter Programmierung. Der erste Schritt zum Verständnis ist wichtig und kann unter Umständen mehrere Anläufe benötigen – aber es lohnt sich!

Ausgabe der Eigenschaften eines Objektes:

Sie können auch die Eigenschaften direkt abfragen (das sollte aber in der Regel über die Methoden stattfinden:

PHP-Quellcode: Ausgabe der Eigenschaften eines Objektes
echo $auto_1->benoetigter_kraftstoff;
echo $auto_1->anzahl_betankungen;

Aufgabe:

Erstellen Sie die Klasse "student"

Diese Klasse hat die Eigenschaft:

  • Geschlecht
  • Alter in Jahren
  • Hauptfach

Und es gibt die Methoden

  • hat Geburtstag (Alter steigt i.d.R. um 1 Jahr) und eine Ausgabe auf dem Bildschirm erscheint mit dem entsprechenden Alter
  • wechselt Hauptfach und eine Ausgabe auf dem Bildschirm erscheint, welches das alte Fach war und welches das neue Fach ist.

Leiten Sie 2 Objekte ab:

  1. Objekt: Susi S., Alter 22, Hauptfach Englisch
  2. Objekt: Alfred A., Alter 24, Hauptfach Ameisenkunde

Lassen Sie Alfred 2-mal Geburtstag haben und Susi das Fach wechseln nach Latein

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe