⊗ppOpIfCD 70 of 107 menu

Kutangaza Mjenzi katika Interface katika OOP katika PHP

Katika interface pia inawezekana kutangaza mjenzi wa class. Tuangalie kwa mfano. Tuseme tumeweka nia kutengeneza class Rectangle, ambayo itakuwa na njia za kupata eneo, mzunguko, na pia mjenzi, unaokubali vigezo viwili. Wacha tuelezee class yetu kwa kutumia interface:

<?php interface iRectangle { public function __construct($a, $b); // mjenzi wenye vigezo viwili public function getSquare(); public function getPerimeter(); } ?>

Wacha tuandike utekelezaji wa interface yetu 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); } } ?>

Nini kililetwa na kutangaza mjenzi katika interface? Kwanza, hatutasahau kutekeleza mjenzi katika class. Pili, interface inaonyesha wazi, kwamba mjenzi wa class anapaswa kukubali vigezo viwili: sio zaidi, wala pungufu. Hii pia inatu kinga kutoka kwa makosa ya bahati nasibu.

Kwa nini tuliumba interface tofauti iRectangle, badala ya kuongeza mjenzi kwenye interface Figure? Kwa sababu takwimu zote zina idadi tofauti ya pande na, ipasavyo, idadi tofauti ya vigezo katika mjenzi. Kwa hivyo ilibidi tuunde interface tofauti, sahihi zaidi hasa kwa mistatili.

Tengeneza interface iCube, ambao utaelezea takwimu ya Mchemraba. Acha interface yako ielezee mjenzi, unaokubali upande wa mchemraba kama kigezo, na pia njia za kupata ujazo wa mchemraba na eneo la uso.

Tengeneza class Cube, inayotekeleza interface iCube.

Tengeneza interface iUser, ambao utaelezea mtumiaji. Inadhaniwa kwamba mtumiaji atakuwa na jina na umri na sehemu hizi zitapewa kwenye mjenzi kama vigezo. Acha interface yako pia ibainishe kwamba mtumiaji atakuwa na getters (lakini si setters) kwa jina na umri.

Tengeneza class User, inayotekeleza interface iUser.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa