⊗ppOpIfCD 70 of 107 menu

PHP'de OOP'de Arayüzde Yapıcı Bildirimi

Bir arayüzde sınıf yapıcısı da bildirilebilir. Bir örnek üzerinden inceleyelim. Diyelim ki içinde alan ve çevre bulma metotları olan ve iki parametre alan bir yapıcıya sahip Rectangle (Dikdörtgen) sınıfı oluşturmaya karar verdik. Sınıfımızı bir arayüz kullanarak tanımlayalım:

<?php interface iRectangle { public function __construct($a, $b); // iki parametreli yapıcı public function getSquare(); public function getPerimeter(); } ?>

Şimdi iRectangle arayüzümüzü uygulayan bir sınıf yazalım:

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

Arayüzde yapıcı bildirmek bize ne sağladı? İlk olarak, sınıfta yapıcıyı uygulamayı unutmayacağız. İkinci olarak, arayüz açıkça sınıf yapıcısının iki parametre alması gerektiğini belirtiyor: ne eksik ne fazla. Bu ayrıca bizleri olası bir hatadan koruyacaktır.

Neden Figure (Şekil) arayüzüne yapıcı eklemek yerine ayrı bir iRectangle arayüzü oluşturduk? Çünkü tüm şekiller farklı sayıda kenara sahiptir ve dolayısıyla yapıcıda farklı sayıda parametre gerektirir. Bu nedenle özellikle dikdörtgenler için ayrı, daha kesin bir arayüz oluşturmak zorunda kaldık.

Küp şeklini tanımlayan bir iCube arayüzü yapın. Arayüzünüz, küpün bir kenarını parametre olarak alan bir yapıcıyı ve ayrıca küpün hacmini ve yüzey alanını elde etmek için metotlar tanımlasın.

iCube arayüzünü uygulayan bir Cube sınıfı yapın.

Kullanıcıyı tanımlayan bir iUser arayüzü yapın. Kullanıcının bir adı ve yaşı olacağı ve bu alanların yapıcı parametreleri olarak geçirileceği varsayılmaktadır. Arayüzünüz ayrıca kullanıcı için ad ve yaş için alıcı (getter) metotları (ancak ayarlayıcı (setter) olmayan) belirtmelidir.

iUser arayüzünü uygulayan bir User sınıfı yapın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet