:: Anbieterverzeichnis :: Globale Branchen
:: SELFPHP Forum ::
Fragen rund um die Themen PHP?
In über
130.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
|
Praxis – Lebewesen |
|
SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
Hier ein abschließendes Beispiel zu den OOP-Erweiterungen, damit Sie sich ein Bild davon machen können, welch schöpferischer Akt sich im Einsatz objektorientierter Programmierung verbirgt.
<?php
// Schnittstelle
// Gewährleistet die Kommunikation zwischen Klassen
interface Wachstum {
// Zu implementierende Methode
function altern();
}
// Abstraktion einer Klasse
abstract class Lebewesen implements Wachstum {
// Eigenschaften schützen, sodass über ein
// Objekt kein direkter Zugriff möglich ist!
protected $alter = 0;
protected $geschlecht;
public function altern(){}
public final function getAlter() {
return $this->alter;
}
}
// Klasse Mensch wird durch die Superklasse
// Lebewesen erweitert (Vererbung)
class Mensch extends Lebewesen {
protected static $vorfahre = "Affe";
protected $name;
// Konstruktor
public function __construct($name, $geschlecht) {
$this->name = $name;
$this->geschlecht = $geschlecht;
$this->altern();
}
// Destruktor
public function __destruct() {
echo "<br>...und so scheidet ".$this->name." dahin";
}
// Finale Methoden
public final function altern() {
$this->alter++;
}
public final function getName() {
return $this->name;
}
public function umbenennen($neuerName) {
$this->name = $neuerName;
}
public function geburtstagFeiern() {
$this->altern();
echo "trööööt";
}
// Statische Methoden
public static final function neueEvolutionstheorie($neuerVorfahre) {
Mensch::$vorfahre = $neuerVorfahre;
}
public static final function getVorfahre() {
return Mensch::$vorfahre;
}
}
// Klasse Deutscher erbt von Mensch
class Deutscher extends Mensch {
public function __construct($name, $geschlecht) {
parent::__construct($name, $geschlecht);
}
public function umbenennen($neuerName, $geduldsfaden=false) {
$erfolg = $this->behoerdengang($geduldsfaden);
if ($erfolg) $this->name = $neuerName;
}
// Private Methode
private function behoerdengang($geduldsfaden) {
try {
if (!$geduldsfaden)
throw new Exception("Umbennenung fehlgeschlagen!");
return true;
} catch (Exception $prop) {
echo $prop->getMessage()."<br>";
return false;
}
}
}
// Autor erzeugen (Objekt)
$autor = new Mensch("Matthias", "m");
// Auf die Methode getName() zugreifen
echo $autor->getName()."<br>";
// Autor umbenennen
$autor->umbenennen("Matze");
// Neuen Namen ausgeben
echo "Neuer Name: ".$autor->getName()."<br>";
// Folgende Codezeile erzeugt einen Fehler
// da die Eigenschaft geschützt ist!
// echo $autor->geschlecht;
// An das Alter gelangt man mit Hilfe der
// Funktion getAlter()
echo "Alter des Autors: " . $autor->getAlter() ."<br>";
// Stammt Autor vom Mensch ab?
if ($autor instanceof Mensch) {
echo $autor->getName()." ist ein Mensch!<br>";
}
// Wer sind die Vorfahren der Menschen
echo "Der Mensch ist ein Nachfahre von ".Mensch::getVorfahre()."<br>";
// Neue Theorie
Mensch::neueEvolutionstheorie("Alien");
// Wer sind nun die Vorfahren der Menschen
echo "Der Mensch ist ein Nachfahre von ".Mensch::getVorfahre()."<br>";
// Autorin erzeugen (Objekt)
$autorin = new Deutscher("Caroline", "w");
// Die Methode behoerdengang ist über
// das Objekt nicht zu erreichen, da
// diese als private gekennzeichnet ist!
// $autorin->behoerdengang(true);
// Gibt den Ausnahmefall aus, da das
// zweite Argument false ist (throw/catch).
$autorin->umbenennen("Caro", false);
?>
Ausgabe
Matthias
Neuer Name: Matze
Alter des Autors: 1
Matze ist ein Mensch!
Der Mensch ist ein Nachfahre von Affe
Der Mensch ist ein Nachfahre von Alien
Umbennenung fehlgeschlagen!
...und so scheidet Matze dahin
...und so scheidet Caroline dahin
|
|
|
|
|
:: Anbieterverzeichnis ::
Webhosting/Serverlösungen
Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?
Sie sind nur ein paar Klicks davon entfernt!
|