⊗ppOpIfCD 70 of 107 menu

Konstruktori deklareerimine liideses OOP-s PHP-s

Liideses saab samuti deklareerida klassi konstruktori. Vaatame näidet. Oletame, et otsustasime teha klassi Rectangle, kus on meetodid pindala ja perimeetri leidmiseks, samuti konstruktor, mis võtab vastu kaks parameetrit. Kirjeldame oma klassi liidese abil:

<?php interface iRectangle { public function __construct($a, $b); // konstruktor kahe parameetriga public function getSquare(); public function getPerimeter(); } ?>

Kirjutame oma liidese iRectangle realisatsiooni:

<?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); } } ?>

Mida andis meile konstruktori deklareerimine liideses? Esiteks, me ei unusta realisida konstruktorit klassis. Teiseks, liides näitab selgelt, et klassi konstruktor peab võtma vastu kaks parameetrit: mitte rohkem ega vähem. See ka kaitseb meid juhusiku vea eest.

Miks me lõime eraldi liidese iRectangle, mitte ei lisanud konstruktorit liidesesse Figure? Sest kõigil kujunditel on erinev arv külgi ja vastavalt erinev arv parameetreid konstruktoris. Seetõttu pidime me looma eraldi, täpsema liidese spetsiaalselt ristkülikute jaoks.

Tehke liides iCube, mis kirjeldab kujundit Kuup. Olgu teie liides kirjeldab konstruktorit, mis parameetrina võtab vastu kuubi külje, ning meetodeid kuubi ruumala ja pindala saamiseks.

Tehke klass Cube, mis realiseerib liidest iCube.

Tehke liides iUser, mis kirjeldab kasutajat. Eeldatakse, et kasutajal on nimi ja vanus ning need väljad antakse edasi konstruktori parameetritena. Olgu teie liides määrab ka selle, et kasutajal on getterid (aga mitte setterid) nime ja vanuse jaoks.

Tehke klass User, mis realiseerib liidest iUser.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu