⊗ppOpIfCD 70 of 107 menu

Konstruktoriaus deklaravimas interfeise OOP PHP

Interfeise taip pat galima deklaruoti klasės konstruktorių. Pažiūrėkime pavyzdžiu. Tarkime, nusprendėme sukurti klasę Rectangle, kurioje bus metodai plotui ir perimetrui rasti, taip pat konstruktorius, priimantis du parametrus. Apibūdinkime savo klasę naudodami interfeisą:

<?php interface iRectangle { public function __construct($a, $b); // konstruktorius su dviem parametrais public function getSquare(); public function getPerimeter(); } ?>

Sukurkime mūsų interfeiso iRectangle implementaciją:

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

Ką mums davė konstruktoriaus deklaravimas interfeise? Pirma, nepamiršime implementuoti konstruktoriaus klasėje. Antra, interfeisas aiškiai nurodo, kad klasės konstruktorius turi priimti du parametrus: ne daugiau, ne mažiau. Tai taip pat apsaugo mus nuo atsitiktinės klaidos.

Kodėl mes sukūrėme atskirą interfeisą iRectangle, o ne pridėjome konstruktorių prie interfeiso Figure? Nes visos figūros turi skirtingą skaičių kraštinių ir atitinkamai skirtingą skaičių parametrų konstruktoriuje. Todėl mes turėjome sukurti atskirą, tikslesnį interfeisą konkrečiai stačiakampiams.

Sukurkite interfeisą iCube, kuris apibūdins figūrą Kubas. Tegul jūsų interfeisas apibūdina konstruktorių, parametru priimantį kubo kraštinę, taip pat metodus kubio tūriui ir paviršiaus plotui gauti.

Sukurkite klasę Cube, implementuojančią interfeisą iCube.

Sukurkite interfeisą iUser, kuris apibūdins vartotoją. Daroma prielaida, kad vartotojas turės vardą ir amžių, ir šie laukai bus perduodami konstruktoriaus parametrais. Tegul jūsų interfeisas taip pat nurodo, kad vartotojas turės getter'ius (bet ne setter'ius) vardui ir amžiui.

Sukurkite klasę User, implementuojančią interfeisą iUser.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti