Folien



(letzte Synchronisation der PDF-Präsentation: 02.08.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Methoden eines Objekts führen wir aus mit:

PHP-Code
  $variable->eineMethode();  

oder

PHP-Code
  $variabe->eineMethode(wertuebergeben);  

Den Hund (namentlich: das Objekt $hund) füttern wir also mit

PHP-Code
  $hund->fressen('Keks');  

Auch hier bezieht sich die Methode fressen auf das Objekt $hund.
In der Methode fressen($nahrung) wurde festgelegt: Wenn “fressen” ausgeführt wird, ändert sich die Variable $hungrig für das jeweilige Objekt, in unserem Fall also $hund->hungrig. Das lässt sich abfragen mit

PHP-Code
  echo $hund->hungrig;  

Ausgabe ist der durch die Methode veränderte Wert.

Gesamtes Listing: Einen Hund erzeugen und füttern

PHP-Code
  class Hund { //Attribut (Eigenschaft) public $hungrig = 'Ich habe Hunger.';   // Methode public function fressen($nahrung) { $this->hungrig = 'Habe keinen so großen Hunger.<br />'; } }   // Objekt $hund erzeugen $hund = new Hund;   // Ausgabe des Werts des Attributs $hungrig für das Objekt $hund echo $hund->hungrig;   // Aufrufen der Methode fressen für das Objekt $hund $hund->fressen('Keks'); echo "<em>Der Hund hat gerade einen Keks bekommen.</em><br />";   // Ausgabe des neuen, durch die Methode "fressen" veränderten Wertes für $hungrig im Objekt $hund echo $hund->hungrig;  

Konstruktor

Der Konstruktor bestimmt den Zustand eines Objekts zum Zeitpunkt der Instanziierung, indem z.B. für Attribute default-Werte gesetzt werden. Der Konstruktur ist eigentlich nichts weiter als eine Methode, die bei der Instanziierung eines Objekts ausgeführt wird. Diesen Vorgang nennt man “Initialisierung” des Objekts (“initializing”).

In PHP ist ein Konstruktor nicht unbedingt nötig, damit ein Objekt initialisiert werden kann.

Beispiel:

PHP-Code
  class Hund extends Tier { public $rasse;   public function __construct($rasse) { $this->rasse = $rasse; } // usw.  

Um ein Objekt $hund zu erzeugen, müssen wir seine Rasse angeben:

PHP-Code
  $hund = new Hund('Schäferhund');    

Die Rasse kann später auch verändert werden:

PHP-Code
  $hund->rasse = 'Mops';  

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: PHP/OOP - Objektmethoden verwenden *****

PHP/OOP_3-1: Methoden eines gegebenen Objekts verwenden 1

Gegeben sein folgendes Listing:

PHP-Code
class Kunde { // Attribute public $name = "Schmitt";   // Methoden function nameAusgeben() { return $this->name; } } $kunde = new Kunde;   // Hier Methode ausführen  


1. Schreiben Sie eine Anweisung, die unter Verwendung der Methode nameAusgeben() den String "Schmitt" ausgibt.
2. Schreiben Sie anschließend das Skript so um, dass die Methode nameAusgeben() dazu führt, dass der Name "Müller" ausgegeben wird.
3. Erzeugen Sie ein Objekt $kunde1 und geben Sie seinen Namen aus.






PHP/OOP_3-2: Methoden eines gegebenen Objekts verwenden 2

Gegeben sei folgende Klasse und das zugehörige, instanziierte Objekt:

PHP-Code
class Kunde { // Attribute public $kontostand = 0;   // Methoden function kontostandSetzen() { $this->kontostand = 400; } } $kunde = new Kunde;   echo "Alter Kontostand: " . $kunde->kontostand . "<br />\n";   // neuen Kontostand durch Methode kontostandSetzen festlegen lassen // METHODENAUFRUF HIER EINFÜGEN   echo "Neuer Kontostand : " . $kunde->kontostand;  


1. Fügen Sie an der angegebenen Stelle Programmcode ein, durch den für das Objekt $kunde der Kontostand neu gesetzt wird.
2. Erzeugen Sie ein neues Objekt namens $kundeSchmitt und verändern Sie mit der Klassenmethode kontostandSetzen seinen Kontostand. Vergewissern Sie sich durch eine entsprechende Ausgabe von der erfolgreichen Veränderung.




PHP/OOP_3-3: Werte an eine Objektmethode übergeben


Gegeben sei das Listing von Aufgabe 2 (siehe auch unten). Dort konnten Sie mit $objekt->kontostandSetzen() den Kontostand eines Objekts auf 400 setzen. Verändern Sie das Skript so, dass Sie mit $objekt->kontostandSetzen(ZAHL) den Kontostand eines Objektes auf den Wert ZAHL setzen können.

PHP-Code
class Kunde { // Attribute public $kontostand = 0;   // Methoden function kontostandSetzen() { $this->kontostand = 400; } } $kunde = new Kunde;   echo "Alter Kontostand: " . $kunde->kontostand . "<br />\n";   // neuen Kontostand durch Methode kontostandSetzen festlegen lassen // METHODE HIER EINFÜGEN