⊗ppOpIfCD 70 of 107 menu

Deklarasjon av konstruktør i grensesnitt i OOP i PHP

I et grensesnitt kan man også deklarere en konstruktør for klassen. La oss se på et eksempel. La oss si at vi bestemte oss for å lage en klasse Rectangle, der det vil være metoder for å finne areal, omkrets, og også en konstruktør som tar imot to parametere. La oss beskrive klassen vår ved hjelp av et grensesnitt:

<?php interface iRectangle { public function __construct($a, $b); // konstruktør med to parametere public function getSquare(); public function getPerimeter(); } ?>

La oss skrive en implementasjon av grensesnittet vårt 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); } } ?>

Hva ga oss deklarasjonen av konstruktøren i grensesnittet? For det første vil vi ikke glemme å implementere konstruktøren i klassen. For det andre indikerer grensesnittet eksplisitt at klassens konstruktør må ta imot to parametere: verken flere eller færre. Dette beskytter oss også mot utilsiktede feil.

Hvorfor lagde vi et eget grensesnitt iRectangle, i stedet for å legge til konstruktøren i grensesnittet Figure? Fordi alle figurer har forskjellig antall sider og følgelig forskjellig antall parametere i konstruktøren. Derfor måtte vi lage et eget, mer presist grensesnitt spesifikt for rektangler.

Lag et grensesnitt iCube som vil beskrive figuren Kube. La grensesnittet ditt beskrive en konstruktør som tar imot kubens side som parameter, i tillegg til metoder for å få volumet av kuben og overflatearealet.

Lag en klasse Cube som implementerer grensesnittet iCube.

Lag et grensesnitt iUser som vil beskrive en bruker. Det antas at brukeren vil ha et navn og en alder, og at disse feltene vil bli sendt som parametere til konstruktøren. La grensesnittet ditt også spesifisere at brukeren vil ha gettere (men ikke settere) for navn og alder.

Lag en klasse User som implementerer grensesnittet iUser.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis