⊗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 интерфейсін жасаңыз, ол пайдаланушыны сипаттайды. Пайдаланушының аты және жасы болады және бұл өрістер конструктор параметрлері арқылы берілетін болсын деп есептейік. Интерфейсіңіз сондай-ақ пайдаланушыда аты мен жасы үшін геттерлер (бірақ сеттерлер емес) болатынын көрсетсін.

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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау