PHP a objekty (11.)- část 2.





Dnes dokončíme téma objekty. Podíváme se na konstruktor a dědičnost.

Konstruktor

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();
		
Vrátí se nám:

Číslo účtu: 82045, majitel: Vojtěch Zicha.
Stav: 11950 Kč.


Dědičnost

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
		}
	}			
		
Pro zopakování: Třída Sporožiro je potomek třídy Účet (extends Ucet). Má k dispozici všechny vlastnosti a metody třídy účet. Nově se objevuje vlastnost $okolik, která určuje, kolik může jít zákazník do mínusu. Dále musíme znovu přepsat metodu Vyber, protože musíme přidat test, zda není zákazník mnoho v mínusu.

  <     >  


autor: Vojtěch Zícha
publikováno: 20.7.2005

na ... zacátek stránkyhlavní stránku




Píše a spravuje Vítezslav Titl © 2004-2010, ISSN 1801-1136

Scriptici.cz

- o tvorbě webových stránek (xHTML, HTML, CSS, PHP, JavaScript), scripty a programování (Python, C++)
Google
 
Web scriptici.titl.name