BEISPIEL: OOP UNTER PHP
Beschreibung in den Kommentaren
Ergebnis im Browser:
oop.php
<?php // Nutzen der Klasse person.class.php require_once ("classes/person.class.php"); require_once ("classes/kind.class.php"); // neues Object instanziieren (ableiten) $ich = new person ("Franzel", "Tütenfröhlich", "01.01.1984"); echo "ID-Nummer: ".$ich::$pid."<br>"; //setzen der Eigenschaften $ich->vorname="Franzel"; $ich->nachname="Tütenfröhlich"; $du = new person ("","",""); echo "ID-Nummer: ".$du::$pid."<br>"; $du->vorname="Annabella"; $du->nachname="Zippenstiel"; $du->setGebdat("07.12.1976"); // Aufruf der Methode echo "Meine Name ist: " .$ich->anzeigeName()." <br>"; echo "Dein Name ist: " .$du->anzeigeName()." <br>"; echo "Ich bin geboren am: ".$du->getGebdat()."<br>"; $er = new Person("Gerd", "Gurke", "12.09.1987"); echo "ID-Nummer: ".$er::$pid."<br>"; echo "Sein Name ist: ".$er->anzeigeName()."<br>"; $kiddy = new kind("Pauline", "Paulchen", "2.2.2001", "Mädchen"); echo "Mein Kind ist ein " .$kiddy->getGeschlecht(). " und heißt: ".$kiddy->anzeigeName(); echo "ID-Nummer: ".$kiddy::$pid."<br>"; ?>
person.class.php
<?php // Klasse für eine Person class person { // Eigenschaften der Klasse public static $pid=0; //static ohne ein Objekt verwendbar public $vorname; public $nachname; private $gebdat; // Alle Eigenschafen einer Klasse sollten immer // private sein und nur pber get und set-Methoden // veändert werden dürfen (Interface) function setGebdat ($value) { $this->gebdat=$value; } function getGebdat () { return $this->gebdat; } //************************************************************************************************************ function __construct($vname, $nname, $gebdat) // Der eigene Konstrukor der Klasse // zum Vorinstallieren der EIgenschaften, spart Schreibarbeit { self::$pid++; // Zugriff auf static mit self:: $this->vorname=$vname; $this->nachname=$nname; $this->setGebdat($gebdat); } //************************************************************************************************************ function getPID() { return self::$pid; } function anzeigeName() { //$this ist eine Referenz auf das Objekt selbst return $this->vorname." ". $this ->nachname; } } ?>
<?php // Kindklasse erbt von person.class.php alle public-eigenschaften und public-methoden require_once ("person.class.php"); class kind extends person // extends bedeutet beerbt Klasse personimplements { public $geschlecht; function __construct($vname,$nname,$gebdat,$geschlecht) { parent:: __construct($vname, $nname, $gebdat); // Aufruf des BasisKonstruktor $this->geschlecht = $geschlecht; } function getGeschlecht() { return $this->geschlecht; } } ?>