⊗ppOpIfCD 70 of 107 menu

PHP да ООП да интерфейсда конструктор эълон килиш

Интерфейсда хам синф конструкторини эълон килиш мумкин. Мисолда кўрамиз. Фарз килайлик, биз Rectangle синфини яратмоқчимиз, унда юзани топиш, периметрни топиш методлари, шунга ўхшаш икки параметр кабул килувчи конструктор булади. Келинг, синфимизни интерфейс ёрдамида тасвирлаймиз:

<?php interface iRectangle { public function __construct($a, $b); // икки параметрли конструктор public function getSquare(); public function getPerimeter(); } ?>

Келинг, 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); } } ?>

Интерфейсда конструкторни эълон килиш бизга нима берди? Биринчи навбатда, биз синфда конструкторни амалга оширишни унутмаймиз. Иккинчидан, интерфейс синовсиз курсатадики, синф конструктори икки параметрни кабул килиши керак: кўп эмас, кам эмас. Бу хам бизни tasodifiy xatolikdan саклайди.

Нега биз алохида iRectangle интерфейсини яратдик, Figure интерфейсига конструкторни ку́шмадик? Чунки барча фигуралар турли хил томонлар сонига эга ва шунунг учун конструкторда турли хил параметрлар сонига эга. Шу сабабдан биз алохида, айнан прямоугольниклар учун ани́қ интерфейс яратишга мажбур бўлдик.

iCube интерфейсини яратинг, у Куб шаклини тасвирласин. Сизнинг интерфейсингиз куб томонини параметр сифатида кабул килувчи конструкторни, шунга ўхшаш куб хажми ва юзасини олиш учун методларни тасвирласин.

iCube интерфейсини амалга оширувчи Cube синфини яратинг.

iUser интерфейсини яратинг, у фойдаланувчини тасвирласин. Фарз килинадики, фойдаланувчида исм ва ёш бу́либ, бу майдонлар конструктор параметрлари орқали ўтказилади. Сизнинг интерфейсингиз шуни хам белгиласинки, фойдаланувчида исм ва ёш учун геттерлар (амма сеттерлар эмас) бу́лади.

iUser интерфейсини амалга оширувчи User синфини яратинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш