⊗ppOpIfCD 70 of 107 menu

PHP da OOP da interfeysda konstruktor e'lon qilish

Interfeysda shuningdek, klass konstruktorini e'lon qilish mumkin. Keling, bir misolni ko'ramiz. Faraz qilaylik, biz Rectangle klassini yaratishga qaror qildik, unda yuzani, perimetrni topish uchun metodlar, shuningdek, ikkita parametrni qabul qiladigan konstruktor bo'ladi. Keling, klassimizni interfeys yordamida tavsiflaymiz:

<?php interface iRectangle { public function __construct($a, $b); // ikkita parametrli konstruktor public function getSquare(); public function getPerimeter(); } ?>

Keling, iRectangle interfeysimizni amalga oshiruvchi klass yozamiz:

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

Interfeysda konstruktor e'lon qilish bizga nima berdi? Birinchidan, biz klassda konstruktorni amalga oshirishni unutmaymiz. Ikkinchidan, interfeys aniq ko'rsatadiki, klass konstruktori ikkita parametr qabul qilishi kerak: ko'p emas, kam emas. Bu, shuningdek, bizni tasodifiy xatolardan himoya qiladi.

Nima uchun biz iRectangle alohida interfeysini yaratdik, Figure interfeysiga konstruktorni qo'shmadikmi? Chunki barcha figurallar har xil miqdordagi tomonlarga ega va shuning uchun ularning konstruktorlarida har xil miqdordagi parametrlar bo'ladi. Shuning uchun bizga to'g'ridan-to'g'ri to'rtburchaklar uchun alohida, aniqroq interfeys yaratishga to'g'ri keldi.

iCube interfeysini yarating, u Kub figurasini tavsiflaydi. Interfeyingiz kub tomonini parametr sifatida qabul qiladigan konstruktorni, shuningdek, kub hajmi va sirt yuzasini olish uchun metodlarni tavsiflasin.

iCube interfeysini amalga oshiradigan Cube klassini yarating.

iUser interfeysini yarating, u foydalanuvchini tavsiflaydi. Foydalanuvchining ismi va yoshi bo'lishi va bu maydonlar konstruktor parametrlari sifatida uzatilishi taxmin qilinadi. Interfeyingiz shuningdek, foydalanuvchida ism va yosh uchun getterlar (lekin setterlar emas) bo'lishini belgilasin.

iUser interfeysini amalga oshiradigan User klassini yarating.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish