⊗ppOpIfCD 70 of 107 menu

Deklaration av konstruktor i gränssnitt i OOP i PHP

I ett gränssnitt kan man också deklarera en konstruktor för klassen. Låt oss titta på ett exempel. Låt oss säga att vi bestämde oss för att skapa en klass Rectangle, där det kommer att finnas metoder för att hitta area, omkrets, samt en konstruktor som tar två parametrar. Låt oss beskriva vår klass med hjälp av ett gränssnitt:

<?php interface iRectangle { public function __construct($a, $b); // konstruktor med två parametrar public function getSquare(); public function getPerimeter(); } ?>

Låt oss skriva en implementation av vårt gränssnitt 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); } } ?>

Vad gav oss deklarationen av konstruktorn i gränssnittet? För det första kommer vi inte att glömma att implementera konstruktorn i klassen. För det andra indikerar gränssnittet explicit att klassens konstruktor måste ta två parametrar: varken fler eller färre. Detta skyddar oss också från ett misstag.

Varför skapade vi ett separat gränssnitt iRectangle, istället för att lägga till konstruktorn i gränssnittet Figure? Eftersom alla figurer har ett annat antal sidor och följaktligen ett annat antal parametrar i konstruktorn. Därför var vi tvungna att skapa ett separat, mer exakt gränssnitt specifikt för rektanglar.

Skapa ett gränssnitt iCube, som kommer att beskriva figuren Kub. Låt ditt gränssnitt beskriva en konstruktor, som tar kubens sida som parameter, samt metoder för att få kubens volym och ytarea.

Skapa en klass Cube, som implementerar gränssnittet iCube.

Skapa ett gränssnitt iUser, som kommer att beskriva en användare. Det antas att användaren har ett namn och en ålder och att dessa fält kommer att skickas som parametrar till konstruktorn. Låt ditt gränssnitt också specificera att användaren kommer att ha getters (men inte setters) för namn och ålder.

Skapa en klass User, som implementerar gränssnittet iUser.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa