⊗ppOpIfCD 70 of 107 menu

Konstruktora deklarēšana interfeisā OOP PHP

Interfeisā var arī deklarēt klases konstruktoru. Apskatīsim piemērā. Pieņemsim, ka mēs nolēmām izveidot klasi Rectangle, kurā būs metodes laukuma, perimetra atrašanai, kā arī konstruktors, kas pieņem divus parametrus. Aprakstīsim savu klasi, izmantojot interfeisu:

<?php interface iRectangle { public function __construct($a, $b); // konstruktors ar diviem parametriem public function getSquare(); public function getPerimeter(); } ?>

Uzrakstīsim mūsu interfeisa iRectangle implementāciju:

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

Ko mums deva konstruktora deklarēšana interfeisā? Pirmkārt, mēs neaizmirsīsim implementēt konstruktoru klasē. Otrkārt, interfeiss skaidri norāda, ka klases konstruktoram jāpieņem divi parametri: ne vairāk, ne mazāk. Tas arī sargā mūs no nejaušas kļūdas.

Kāpēc mēs izveidojām atsevišķu interfeisu iRectangle, nevis pievienojām konstruktoru interfeisam Figure? Tāpēc, ka visām figūrām ir atšķirīgs malu skaits un attiecīgi atšķirīgs parametru skaits konstruktorā. Tāpēc mums nācās izveidot atsevišķu, precīzāku interfeisu konkrēti taisnstūriem.

Izveidojiet interfeisu iCube, kas aprakstīs figūru Kubs. Lai jūsu interfeiss apraksta konstruktoru, kas parametru pieņem kuba malu, kā arī metodes kuba tilpuma un virsmas laukuma iegūšanai.

Izveidojiet klasi Cube, kas implementē interfeisu iCube.

Izveidojiet interfeisu iUser, kas aprakstīs lietotāju. Tiek pieņemts, ka lietotājam būs vārds un vecums un ka šie lauki tiks padoti kā konstruktora parametri. Lai jūsu interfeiss arī nosaka to, ka lietotājam būs get metodes (bet ne set metodes) vārdam un vecumam.

Izveidojiet klasi User, kas implementē interfeisu iUser.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt