Menu
Coddy logo textTech

Rückblick – Formrechner

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

challenge icon

Aufgabe

Einfach

Erstellen wir einen Formrechner, der die Leistungsfähigkeit von Schnittstellen beim Erstellen flexiblen und 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 Dateien verteilt:

  • Calculable.php: Definiere eine Calculable-Schnittstelle mit einer einzigen Methodensignatur: calculateArea(). Dieser Vertrag stellt sicher, dass jede berechenbare Form ihre Fläche berechnen kann.
  • Rectangle.php: Erstelle eine Rectangle-Klasse, die Calculable implementiert. Binde die Schnittstellendatei ein. Die Klasse sollte über die privaten Eigenschaften $width und $height verfügen, die über den Konstruktor gesetzt werden. Implementiere calculateArea(), sodass die Fläche zurückgegeben wird (Breite multipliziert mit Höhe).
  • Circle.php: Erstelle eine Circle-Klasse, die ebenfalls Calculable implementiert. Binde die Schnittstellendatei ein. Die Klasse sollte über die private Eigenschaft $radius verfügen, die über den Konstruktor gesetzt wird. Implementiere calculateArea(), sodass die Fläche mithilfe der Formel pi() * radius * radius zurückgegeben wird.
  • main.php: Binde beide Formdateien ein. Erstelle eine Funktion namens displayArea, die einen Calculable-Parameter und einen Formnamen (String) akzeptiert. Die Funktion sollte Folgendes ausgeben: "[name] area: [area]", wobei die Fläche mithilfe von number_format() auf 2 Dezimalstellen gerundet wird.

Du erhältst vier Eingaben: die Breite des Rechtecks, die Höhe des Rechtecks, den Radius des Kreises und einen Formnamen für den Kreis. Erstelle ein Rectangle mit der Breite und Höhe (wandle sie in Gleitkommazahlen um) sowie einen Circle mit dem Radius (wandle ihn in eine Gleitkommazahl um). Rufe displayArea() zweimal auf: zuerst mit dem Rechteck und "Rectangle" als Namen, anschließend mit dem Kreis und dem bereitgestellten Formnamen. Gib jedes Ergebnis in einer eigenen Zeile aus.

Die Funktion displayArea() funktioniert mit jeder Form, die Calculable implementiert. Sie muss nicht wissen, ob sie die Fläche eines Rechtecks, eines Kreises oder einer beliebigen zukünftigen Form berechnet, die du möglicherweise hinzufügst. Das ist die Stärke 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