Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp09/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2009 - Main - OOP In PHP

6 Objektorientierte Programmierung in PHP

6.1 Objekte

Objektorientierte Anwendungen sind in eine Vielzahl von Objekten aufgespaltet, die miteinander zusamenarbeiten und so die Funktionalität der Anwendung herstellen. Normalerweise ist jedes Objekt selbst Bestandteil des Problems, das sich selbst enthält und und eine Anzahl von Eigenschaften und Methoden hat. Die Eigenschaften sind die Daten des Objekts, die Methoden dann die Funktionen, die das Objekt unterstützt.

6.2 Klassen

Eine Klasse lässt sich in PHP sehr leicht deklarieren. Dazu wird das Schlüsselwort 'class' verwendet. Zusätzlich wird der Klasse ein Name zugewiesen und alle Eigenschaften und Methoden aufgeführt, die eine Instanz dieser Klasse haben soll.

Beispiel:

class MyClass {
  // Liste von Eigenschaften
 
  // Liste von Methoden
}

Beispiel 2:

class Person {
  private $name;
 
  function setName($name) {
    $this->name = $name;
  }
 
  function getName() {
    return $this->name;
  }
}
 
$person = new Person();
$person->setName('Marc');
 
print $person->getName();    // Marc

6.3 Konstruktoren und Destruktoren

Der Konstruktor ist eine Methode namens __construct(), die nach der Objekterstellung automatisch vom Schlüsselwort 'new' aufgerufen wird. Sie kann man verwenden, um Initialisationen vorzunehmen. Dann würde das Beispiel aus 6.2 folgendermaßen aussehen.

Beispiel:

class Person {
  private $name;
 
  function __construct($name) {
    $this->name = $name;
  }
 
  function __destruct($name) {
    print "Object is being destroyed!";
  }
 
  function getName() {
    return $this->name;
  }
}
 
$person = new Person('Marc');
 
print $person->getName();    // Marc
$person = NULL;

Destruktoren sind sind das Gegenteil von Konstruktoren. Sie werden bei der Zerstörung des Objekts aufgerufen

6.4 Zugriff auf Methoden und Eigenschaften

6.4.3 $this

Beim Ausführen einer Methode eines Objekts wird automatisch eine spezielle Variable namens $this definiert, die eine Referenz auf das Objekt selbst enthält. Zum Beispiel könnte man mit
$this->name;
auf ein Attribut eines Objekts zugreifen oder entsprechend mit
$this->setName('Marc');
auf eine Methode.

6.4.2 Kapselung

PHP 5 bietet die Möglichkeit mit public, protected und private Methoden und Attribute zu verstecken.

public - Auf eine Variable oder Methode kann von jedem Benutzer zugegriffen werden.
protected - Auf eine Variable oder Methode kann nicht von jedem Benutzer der Klasse zugegriffen werden. Ein Zugriff über vererbte Klassen (extends) ist aber möglich.
private - Auf eine Variable oder Methode kann nur innerhalb der Klasse zugegriffen werden, in der sie definiert wurde.

6.4.3 Vererbung

Vererbung wird verwendet, wenn eine neue Klasse erstellt wird, die ähnliche Eigenschaften und Verhaltensweisen wie eine bereits existierende Klasse aufweist. PHP bietet die Möglichkeit eine existierende Klasse zu erweitern. Wird eine Klasse erweitert, erbt diese alle Eigenschaften und Verhaltensweisen der Eltern-Klasse. Es können dieser neuen Klasse weitere Eigenschaften und Verhaltensweisen hinzugefügt und vererbte überschrieben werden.


Page last modified on July 29, 2009, at 10:19 PM