Menu
Coddy logo textTech

Zusammenfassung – Formen-Rechner

Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy. Lektion 32 von 91.

challenge icon

Aufgabe

Einfach

Erstelle einen Formrechner, der die Leistungsfähigkeit von Schnittstellen beim Erstellen flexiblen, erweiterbaren Codes demonstriert. Du erstellst eine Schnittstelle, die einen Vertrag zur Berechnung von Flächen definiert, und implementierst sie anschließend in verschiedenen Formklassen.

Du organisierst deinen Code auf vier files:

  • Calculable.php: Define eine Calculable-Schnittstelle mit einer einzelnen method-Signatur: calculateArea(). Dieser Vertrag stellt sicher, dass jede berechenbare Form ihre area berechnen kann.
  • Rectangle.php: Create eine Rectangle-class, die Calculable implements. Include die Schnittstellendatei. Die class sollte private $width- und $height-properties besitzen, die über den constructor gesetzt werden. Implement calculateArea(), um die area (width multiplied mit height) zu return.
  • Circle.php: Create eine Circle-class, die ebenfalls Calculable implements. Include die Schnittstellendatei. Die class sollte eine private $radius-property besitzen, die über den constructor gesetzt wird. Implement calculateArea(), um die area mithilfe der formula pi() * radius * radius zu return.
  • main.php: Include beide Formdateien. Create eine function namens displayArea, die einen Calculable-parameter und einen Formnamen (Zeichenkette) accepts. Die function sollte Folgendes Print: "[name] area: [area]", wobei die area mithilfe von number_format() auf 2 Dezimalstellen gerundet wird.

Du erhältst vier inputs: die Rectangle-width, die Rectangle-height, den Circle-radius und einen Formnamen für den Circle. Create ein Rectangle mit width und height (in Gleitkommazahlen umwandeln) sowie einen Circle mit dem radius (in eine Gleitkommazahl umwandeln). Call displayArea() zweimal auf: zuerst mit dem Rectangle und "Rectangle" als Namen, danach mit dem Circle und dem provided Formnamen. Print jedes Ergebnis in einer eigenen Zeile.

Die function displayArea() funktioniert mit jeder Form, die Calculable implements. Sie muss nicht wissen, ob sie die area eines Rectangle, eines Circle oder einer beliebigen zukünftigen Form berechnet, die du möglicherweise hinzufügst. Das ist die Schönheit der Programmierung gegen eine Schnittstelle!

Probier es selbst

<?php
// Die Shape-Dateien einbinden
require_once 'Rectangle.php';
require_once 'Circle.php';

// TODO: Erstelle eine Funktion namens displayArea
// Sie sollte einen Calculable-Parameter und einen Formnamen (string) akzeptieren
// Ausgeben: "[name] area: [area]", wobei area mit number_format() auf 2 Dezimalstellen gerundet wird

// Eingaben lesen
$width = floatval(trim(fgets(STDIN)));
$height = floatval(trim(fgets(STDIN)));
$radius = floatval(trim(fgets(STDIN)));
$circleName = trim(fgets(STDIN));

// TODO: Erstelle ein Rectangle mit der Breite und Höhe

// TODO: Erstelle einen Circle mit dem Radius

// TODO: Rufe displayArea() mit dem Rectangle auf und verwende "Rectangle" als Namen

// TODO: Rufe displayArea() mit dem Circle auf und verwende den bereitgestellten Formnamen
?>

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-PHP-Compiler