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

Lassen Sie uns einen Formenkalkulator erstellen, der die Leistungsfähigkeit von Interfaces für die Erstellung von flexiblem und erweiterbarem Code demonstriert. Sie werden ein Interface erstellen, das einen Vertrag für die Berechnung von Flächen definiert, und dieses dann in verschiedenen Form-Klassen implementieren.

Sie werden Ihren Code über vier Dateien organisieren:

  • Calculable.php — Definieren Sie ein Calculable Interface mit einer einzigen Methodensignatur: calculateArea(). Dieser Vertrag stellt sicher, dass jede berechenbare Form ihre Fläche berechnen kann.
  • Rectangle.php — Erstellen Sie eine Rectangle Klasse, die Calculable implementiert. Binden Sie die Interface-Datei ein. Die Klasse sollte private $width und $height Eigenschaften haben, die über den Konstruktor gesetzt werden. Implementieren Sie calculateArea(), um die Fläche zurückzugeben (Breite multipliziert mit Höhe).
  • Circle.php — Erstellen Sie eine Circle Klasse, die ebenfalls Calculable implementiert. Binden Sie die Interface-Datei ein. Die Klasse sollte eine private $radius Eigenschaft haben, die über den Konstruktor gesetzt werden. Implementieren Sie calculateArea(), um die Fläche mit der Formel pi() * radius * radius zurückzugeben.
  • main.php — Binden Sie beide Form-Dateien ein. Erstellen Sie 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 mit number_format() auf 2 Dezimalstellen gerundet wird.

Sie erhalten vier Eingaben: Rechteckbreite, Rechteckhöhe, Kreisradius und einen Formnamen für den Kreis. Erstellen Sie ein Rectangle mit der Breite und Höhe (in Floats umwandeln) und einen Circle mit dem Radius (in Float umwandeln). Rufen Sie displayArea() zweimal auf — zuerst mit dem Rechteck unter Verwendung von "Rectangle" als Name, dann mit dem Kreis unter Verwendung des angegebenen Formnamens. Geben Sie jedes Ergebnis in einer eigenen Zeile aus.

Die displayArea() Funktion arbeitet mit jeder Form, die Calculable implementiert — sie muss nicht wissen, ob sie die Fläche eines Rechtecks, eines Kreises oder einer zukünftigen Form berechnet, die Sie hinzufügen könnten. Das ist das Schöne an der Programmierung gegen ein Interface!

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
// Ausgabe: "[name] area: [area]", wobei die Fläche 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 Rechteck auf und verwende "Rectangle" als Namen

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

Alle Lektionen in Objektorientierte Programmierung