Konstruktory nám často velice mohou usnadnit práci. Konstruktor je metoda objektu (viz minulý díl), která se zavolá při načtení objektu. Konstruktor se musí jmenovat stejně jako třída! Jen tak lze poznat, že se jedná o konstruktor. Na naší třídě Účet z minula si ukážeme jeho použití.
class Ucet {
var $cislo, $stav, $majitel, $adresa, $karta;
function Ucet($cislo = 1, $jmeno = "", $stav = 0, $adresa = "", $karta = false) {
$this->cislo = $cislo;
$this->jmeno = $jmeno;
$this->stav = $stav;
$this->$adresa = $adresa;
$karta = false;
}
function Info() {
echo "Číslo účtu: ".$this->cislo.", majitel: ".$this->jmeno."<br>";
echo "Stav: ".$this->stav." Kč.";
}
function Vyber($kolik) {
$this->stav -= $kolik
}
function Vloz($kolik) {
$this->stav += $kolik
}
}
Toto nám urychlí práci. Konstruktoru předáme vlastnosti a on je uloží do proměnných. Dále jsme deklarovali metody Info (Informace o účtu), Vyber (odebere částku) a Vlož (přidá částku). Použijeme-li tento kód:
$ucet = new Ucet(82045, "Vojtěch Zicha", 12000, "Moje Adresa", true);
$ucet->Vyber(100); $ucet->Vloz(50);
$ucet->Info();
Číslo účtu: 82045, majitel: Vojtěch Zicha.
Stav: 11950 Kč.
Dalším z věcí, co nám usnadní práci, je dědičnost. Dědičnost umožňuje vytvořit od jedné třídy (rodiče) jinou třídu (potomka), která získá (zdědí) všechny vlastnosti rodiče, ale může je změnit. Dědičnost se vyjadřuje pomocí klíčového slova extends v názvu třídy.Můžeme si např. deklarovat třídu Sporožiro, založenou na třídě účet.
class Sporoziro extends Ucet {
var $okolik = -10000;
function Vyber($kolik) {
if($this->stav - $kolik >= $this->okolik)
$this->stav -= $kolik
}
}
na ... zacátek stránky, hlavní stránku