Menu
Coddy logo textTech

Özet - Şekil Hesaplayıcı

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 32 / 91.

challenge icon

Görev

Kolay

Esnek ve genişletilebilir kod oluşturmak için arayüzlerin (interfaces) gücünü gösteren bir şekil hesaplayıcı oluşturalım. Alan hesaplamak için bir sözleşme tanımlayan bir arayüz oluşturacak ve ardından bunu farklı şekil sınıflarında uygulayacaksınız.

Kodunuzu dört dosya halinde düzenleyeceksiniz:

  • Calculable.php — Tek bir metot imzasına sahip bir Calculable arayüzü tanımlayın: calculateArea(). Bu sözleşme, hesaplanabilir herhangi bir şeklin alanını hesaplayabilmesini sağlar.
  • Rectangle.phpCalculable arayüzünü uygulayan bir Rectangle sınıfı oluşturun. Arayüz dosyasını dahil edin. Sınıf, yapıcı (constructor) aracılığıyla ayarlanan özel $width ve $height özelliklerine sahip olmalıdır. Alanı (genişlik çarpı yükseklik) döndürmek için calculateArea() metodunu uygulayın.
  • Circle.php — Yine Calculable arayüzünü uygulayan bir Circle sınıfı oluşturun. Arayüz dosyasını dahil edin. Sınıf, yapıcı aracılığıyla ayarlanan özel bir $radius özelliğine sahip olmalıdır. pi() * radius * radius formülünü kullanarak alanı döndürmek için calculateArea() metodunu uygulayın.
  • main.php — Her iki şekil dosyasını da dahil edin. Bir Calculable parametresi ve bir şekil adı (string) kabul eden displayArea adında bir fonksiyon oluşturun. Fonksiyon şunu yazdırmalıdır: "[name] area: [area]"; burada alan, number_format() kullanılarak virgülden sonra 2 basamağa yuvarlanmalıdır.

Dört girdi alacaksınız: dikdörtgen genişliği, dikdörtgen yüksekliği, daire yarıçapı ve daire için bir şekil adı. Genişlik ve yükseklik ile bir Rectangle (float'a dönüştürün) ve yarıçap ile bir Circle (float'a dönüştürün) oluşturun. displayArea() fonksiyonunu iki kez çağırın — önce isim olarak "Rectangle" kullanarak dikdörtgen için, ardından sağlanan şekil adını kullanarak daire için. Her sonucu kendi satırına yazdırın.

displayArea() fonksiyonu, Calculable arayüzünü uygulayan her şekille çalışır — bir dikdörtgenin mi, dairenin mi yoksa gelecekte ekleyebileceğiniz başka bir şeklin mi alanını hesapladığını bilmesine gerek yoktur. Bir arayüze göre programlama yapmanın güzelliği budur!

Kendin dene

<?php
// Şekil dosyalarını dahil et
require_once 'Rectangle.php';
require_once 'Circle.php';

// TODO: displayArea adında bir fonksiyon oluşturun
// Bu fonksiyon bir Calculable parametresi ve bir şekil adı (string) almalıdır
// Yazdır: "[name] area: [area]" burada alan number_format() kullanılarak 2 ondalık basamağa yuvarlanmalıdır

// Girişleri oku
$width = floatval(trim(fgets(STDIN)));
$height = floatval(trim(fgets(STDIN)));
$radius = floatval(trim(fgets(STDIN)));
$circleName = trim(fgets(STDIN));

// TODO: Genişlik ve yükseklik ile bir Rectangle (Dikdörtgen) oluşturun

// TODO: Yarıçap ile bir Circle (Daire) oluşturun

// TODO: "Rectangle" adını kullanarak dikdörtgen ile displayArea() fonksiyonunu çağırın

// TODO: Sağlanan şekil adını kullanarak daire ile displayArea() fonksiyonunu çağırın
?>

Nesne Yönelimli Programlama bölümündeki tüm dersler