⊗ppOpIfCD 70 of 107 menu

Konstruktor deklarálása interfészben OOP PHP-ben

Egy interfészben a osztály konstruktorát is deklarálhatjuk. Nézzünk egy példát. Tegyük fel, hogy elhatároztuk, hogy készítünk egy Rectangle osztályt, amelyben lesznek metódusok a terület és a kerület meghatározására, valamint egy konstruktor, amely két paramétert fogad. Írjuk le az osztályunkat az interfész segítségével:

<?php interface iRectangle { public function __construct($a, $b); // két paraméteres konstruktor public function getSquare(); public function getPerimeter(); } ?>

Írjuk meg az iRectangle interfészünk implementációját:

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

Mit adott nekünk a konstruktor interfészben való deklarálása? Először is, nem felejtjük el implementálni a konstruktort az osztályban. Másodszor, az interfész egyértelműen megadja, hogy az osztály konstruktorának két paramétert kell fogadnia: se többet, se kevesebbet. Ez szintén véd meg minket a véletlen hibáktól.

Miért készítettünk külön iRectangle interfészt, ahelyett, hogy a konstruktort hozzáadtuk volna az Figure interfészhez? Mivel minden alakzatnak különböző számú oldala van, és ennek megfelelően a konstruktor paramétereinek száma is eltérő. Ezért kénytelenek voltunk egy külön, pontosabb interfészt készíteni kifejezetten a téglalapok számára.

Készítsen egy iCube interfészt, amely a Kocka alakzatot írja le. Az interfész írja le a konstruktort, amely paraméterként a kocka oldalát fogadja, valamint a kocka térfogatának és felszínének meghatározására szolgáló metódusokat.

Készítsen egy Cube osztályt, amely implementálja az iCube interfészt.

Készítsen egy iUser interfészt, amely egy felhasználót ír le. Feltételezhető, hogy a felhasználónak neve és életkora van, és ezek a mezők a konstruktor paramétereiként lesznek átadva. Az interfész állítsa be azt is, hogy a felhasználónak lesznek getterei (de setterei nem) a névhez és az életkorhoz.

Készítsen egy User osztályt, amely implementálja az iUser interfészt.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás