복습 - 도형 계산기
Coddy PHP 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 91개 중 32번째.
챌린지
쉬움유연하고 확장 가능한 코드를 만드는 데 있어 interface의 강력함을 보여 주는 도형 계산기를 만들어 보겠습니다. 면적을 계산하기 위한 계약을 Define하는 interface를 만들고, 이를 다양한 도형 class에서 Implement합니다.
코드를 네 개의 file에 나누어 구성합니다:
Calculable.php: 하나의 method signature인calculateArea()를 포함하는Calculableinterface를 Define합니다. 이 계약은 모든 면적 계산이 가능한 도형이 자신의 area를 계산할 수 있도록 보장합니다.Rectangle.php:Calculable을 implements하는Rectangleclass를 Create합니다. interface file을 Include합니다. class에는 constructor를 통해 설정되는 private$width및$heightproperties가 있어야 합니다.calculateArea()를 Implement하여 area(width multiplied by height)를 Return합니다.Circle.php: 역시Calculable을 implements하는Circleclass를 Create합니다. interface file을 Include합니다. class에는 constructor를 통해 설정되는 private$radiusproperty가 있어야 합니다.calculateArea()를 Implement하여pi() * radius * radiusformula를 사용해 area를 Return합니다.main.php: 두 도형 file을 모두 Include합니다.Calculableparameter와 도형 이름(string)을 accepts하는displayArea라는 function을 Create합니다. function은number_format()을 사용해 area를 소수점 2 places로 반올림한 다음"[name] area: [area]"를 Print해야 합니다.
네 가지 inputs를 받습니다. rectangle width, rectangle height, circle radius, 그리고 circle의 도형 이름입니다. width와 height를 사용해 Rectangle을 Create하고(float로 변환), radius를 사용해 Circle을 Create합니다(float로 변환). displayArea()를 두 번 Call합니다. 먼저 "Rectangle"을 이름으로 사용해 rectangle과 함께 Call하고, 다음으로 provided shape name을 사용해 circle과 함께 Call합니다. 각 결과를 자체 줄에 Print합니다.
displayArea() function은 Calculable을 implements하는 모든 도형과 함께 작동합니다. 이 function은 rectangle, circle 또는 앞으로 추가할 수 있는 어떤 도형의 area를 계산하는지 알 필요가 없습니다. 이것이 바로 interface를 대상으로 프로그래밍하는 것의 아름다움입니다!
직접 해보기
<?php
// 도형 파일들을 포함합니다
require_once 'Rectangle.php';
require_once 'Circle.php';
// TODO: displayArea라는 함수를 생성하세요
// Calculable 매개변수와 도형 이름(string)을 받아야 합니다
// 출력: "[name] area: [area]" 여기서 area는 number_format()을 사용하여 소수점 2자리로 반올림됩니다
// 입력을 읽습니다
$width = floatval(trim(fgets(STDIN)));
$height = floatval(trim(fgets(STDIN)));
$radius = floatval(trim(fgets(STDIN)));
$circleName = trim(fgets(STDIN));
// TODO: width와 height로 Rectangle을 생성하세요
// TODO: radius로 Circle을 생성하세요
// TODO: "Rectangle"을 이름으로 사용하여 rectangle로 displayArea()를 호출하세요
// TODO: 제공된 도형 이름을 사용하여 circle로 displayArea()를 호출하세요
?>객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 PHP 컴파일러