⊗ppOpIfCD 70 of 107 menu

Deklarácia konštruktora v rozhraní v OOP v PHP

V rozhraní je možné deklarovať aj konštruktor triedy. Pozrime sa na príklad. Povedzme, že sme sa rozhodli vytvoriť triedu Rectangle, v ktorej budú metódy na výpočet plochy, obvodu, ako aj konštruktor, ktorý prijíma dva parametre. Opíšme našu triedu pomocou rozhrania:

<?php interface iRectangle { public function __construct($a, $b); // konštruktor s dvoma parametrami public function getSquare(); public function getPerimeter(); } ?>

Napíšme implementáciu nášho rozhrania iRectangle:

<?php class Rectangle implements iRectangle { private $a; private $b; public function __construct($a, $b) { $this->a = $a; $this->b = $b; } public function getSquare() { return $this->a * $this->b; } public function getPerimeter() { return 2 * ($this->a + $this->b); } } ?>

Čo nám poskytla deklarácia konštruktora v rozhraní? Po prvé, nezabudneme implementovať konštruktor v triede. Po druhé, rozhranie explicitne určuje, že konštruktor triedy musí prijímať dva parametre: nie viac, nie menej. Toto nás tiež chráni pred náhodnou chybou.

Prečo sme vytvorili samostatné rozhranie iRectangle, a nepridali sme konštruktor do rozhrania Figure? Pretože všetky obrazce majú rôzny počet strán a teda aj rôzny počet parametrov v konštruktore. Preto sme museli vytvoriť samostatné, konkrétnejšie rozhranie špecificky pre obdĺžniky.

Vytvorte rozhranie iCube, ktoré bude popisovať obrazec Kocka. Nech vaše rozhranie popisuje konštruktor, ktorý ako parameter prijíma stranu kocky, ako aj metódy na získanie objemu kocky a plochy povrchu.

Vytvorte triedu Cube, ktorá implementuje rozhranie iCube.

Vytvorte rozhranie iUser, ktoré bude popisovať používateľa. Predpokladá sa, že používateľ bude mať meno a vek a tieto polia budú odovzdané ako parametre konštruktora. Nech vaše rozhranie tiež určuje, že používateľ bude mať gettery (ale nie settery) pre meno a vek.

Vytvorte triedu User, ktorá implementuje rozhranie iUser.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť