Benutzer-Werkzeuge

Webseiten-Werkzeuge


misc:oop_1

OOP - Basics Teil 1

Zusammenfassung

Objekt Orientierte Programmierung (OOP) ist ein Prinzip der Programmierung, in dem Daten zu Objekten zusammengefasst werden (Klassen). Vorteile des OOP ist die hohe Flexibilität und Wiederverwendbarkeit von Objekten (Klassen). Quelltext wird leichter verständlich und kann auch im Umfang um ein Vielfaches verkleinert werden.

Um OOP besser zu verstehen, sollten Grundkenntnisse in der jeweiligen Programmiersprache vorhanden sein, sowie das Wissen über Variabeln und Funktionen.

Einführung

Unsere Welt besteht aus Objekten, egal ob es Fernseher, Autos, Bücher oder Äpfel sind.

Objekte haben Zustände und Funktionen.

Zum Beispiel das Objekt Fernseher: dieser kann „an“ oder „aus“ sein (ein Zustand) und man kann ihn „anschalten“ und „ausschalten“ (eine Funktion)

Das typische an Funktionen ist, dass sie Zustände ändern. Man weiss zum Beispiel was die Funktion „anschalten“ bewirkt, aber man weiss nicht wie diese Funktion das macht (den Quelltext) und das muss auch nur der Programmierer wissen.

<?
//Quellcode der Datei fernseher.php
//PhP 4 kompatibel
//Definiert die Klasse fernseher
class fernseher
{
   var $eingeschaltet = "nein"; //ein Zustand wird als Variable gespeichert
 
   /* eine Funktion einschalten
    * diese Funktion &auml;ndert den Zustand eingeschaltet
    *
    */
   function einschalten()
   {
      //$this zeigt, das wir auf etwas von der Klasse zugreifen
      //und zwar auf den zustand $eingeschaltet;
      $this->eingeschaltet = "ja";
   }
 
   /* eine zweite Funkltion ausschalten
    * diese Funktion aendert den Zustand eingeschaltet
    *
    */
   function ausschalten()
   {
     $this->eingeschaltet  = "nein";
   }
}
?>

Klassen

Objekte werden in Klassen definiert. Also ist unser Objekt Fernseher mit seinen Zuständen und Funktionen in der Klasse „fernseher“ definiert. Zugegeben dieser Fernseher ist ein recht einfaches Modell eines echten Fernsehers, denn man kann ihn bisher nur an und ausschalten.

Nachdem wir eine Klasse definiert haben, können wir diese dann benutzen um Instanzen von diesem Objekt zu erstellen. Also wir können Variablen vom Typ Fernseher erstellen

<?
//Quellcode der Datei test.php
include("fernseher.php"); //Fuegt den Quelltext der Klasse fernseher ein
$objekt    = new fernseher(); //erzeugt eine Instanz vom Object Fernseher
$fernseher = new fernseher(); //der Name ist beliebig
 
//Wir koennen unser Objekt(Fernseher) jetzt ein- und ausschalten wie wir wollen
$objekt->einschalten();
$objekt->ausschalten();
$fernseher->einschalten();
 
echo "Ist der Fernseher eingeschaltet ?";
echo "Fernseher 1: " . $objekt->eingeschaltet;    //gibt "nein" aus
echo "Fernseher 2: " . $fernseher->eingeschaltet; //gibt "ja" aus
?>

Wie wir sehen, können wir jetzt Variablen vom Typ „fernseher“ definieren. Und zwar so viele wie wir wollen und jede einzelne Variable hat eigene Zuständs-Werte, aber die gleichen Funktionen. Zusätzlich müssen wir uns auch nicht mehr darum kümmern WIE man den Fernseher einschaltet oder ausschaltet - wir können es einfach tun indem wir die entsprechende Funktion aufrufen.

Lernaufgabe

Eine geeignete Übung ist nun die obrige Klasse zu erweitern. Erweitern Sie die Klasse um den Zustand „aktuellesProgramm“ und um die Methode programmWechseln($nr). Eine weitere wichtige Funktion von Methoden ist es Zuständswerte zu liefern, damit der Benutzer nicht mehr auf Zustände manuell zugreifen muss bzw. kann, deshalb erweitern Sie bitte die Klasse um die zwei Methoden is_eingeschaltet(), sowie aktuellesProgramm(), die den aktuellen Zustandswert ausgeben.

Danach (Tipp: nicht vorher) können Sie sich die Lösung auf der nächsten Seite angucken.

misc/oop_1.txt · Zuletzt geändert: 2011/12/31 01:07 von ben