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

Интерфейсте конструкторду жарыялоо бизге эмне берди? Биринчиден, биз классында конструкторду ишке ашырууну унутпайбыз. Экинчиден, интерфейс класс конструктору эки параметр алууга тийиш экендигин ачык көрсөтөт: көп эмес, аз эмес. Бул бизди кокустан кетирилген катадан сактайт.

Эмне үчүн биз бөлөк iRectangle интерфейсин түздүк, Figure интерфейсине конструкторду кошкон эмеспи? Себеби, бардык фигуралар ар кандай жактар санына ээ жана, тиешелүү түрдө, конструктордо ар кандай параметрлер санына ээ. Ошондуктан бизге бөлөк, так тик бурчтуктар үчүн өзгөчө интерфейс түзүүгө туура келди.

iCube интерфейсин жасагыла, ал Куб фигурасын сүрөттөсүн. Сиздин интерфейсиңиз кубдун капталын параметр катары кабыл алган конструкторду, ошондой эле кубдун көлөмүн жана бетинин аянтын алуу ыкмаларын сүрөттөсүн.

iCube интерфейсин ишке ашырган Cube классын жасагыла.

iUser интерфейсин жасагыла, ал колдонуучуну сүрөттөсүн. Колдонуучунун аты жана жашы бар деп болжолдонууда жана бул талаалар конструкторго параметрлер катары өткөрүлөт деп айтылат. Сиздин интерфейсиңиз ошондой эле колдонуучунун аты жана жашы үчүн getterлер (бирок setterлер эмес) болушун талап кылсын.

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çeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу