⊗ppOpIfCD 70 of 107 menu

Declaratie van de constructor in de interface in OOP in PHP

In een interface kan ook de constructor van een klasse worden gedeclareerd. Laten we een voorbeeld bekijken. Stel dat we besloten hebben om een klasse Rectangle te maken, die methodes bevat voor het vinden van de oppervlakte, de omtrek, en ook een constructor die twee parameters accepteert. Laten we onze klasse beschrijven met behulp van een interface:

<?php interface iRectangle { public function __construct($a, $b); // constructor met twee parameters public function getSquare(); public function getPerimeter(); } ?>

Laten we de implementatie van onze interface iRectangle schrijven:

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

Wat heeft de declaratie van de constructor in de interface ons opgeleverd? Ten eerste zullen we niet vergeten om de constructor in de klasse te implementeren. Ten tweede geeft de interface expliciet aan dat de constructor van de klasse twee parameters moet accepteren: niet meer en niet minder. Dit beschermt ons ook tegen een onbedoelde fout.

Waarom hebben we een aparte interface iRectangle gemaakt, en niet de constructor toegevoegd aan de interface Figure? Omdat alle figuren een verschillend aantal zijden hebben en, dienovereenkomstig, een verschillend aantal parameters in de constructor. Daarom moesten we een aparte, meer precieze interface maken specifiek voor rechthoeken.

Maak een interface iCube, die de figuur Kubus beschrijft. Laat je interface een constructor beschrijven, die de zijde van de kubus als parameter accepteert, evenals methodes voor het verkrijgen van het volume van de kubus en de oppervlakte.

Maak een klasse Cube, die de interface iCube implementeert.

Maak een interface iUser, die een gebruiker beschrijft. Er wordt aangenomen dat de gebruiker een naam en leeftijd heeft en dat deze velden als parameters aan de constructor worden doorgegeven. Laat je interface ook specificeren dat de gebruiker getters (maar geen setters) voor de naam en leeftijd zal hebben.

Maak een klasse User, die de interface iUser implementeert.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren