Menu
Coddy logo textTech

요약 - 도형 계산기

Coddy PHP 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 91개 중 32번째.

challenge icon

챌린지

쉬움

유연하고 확장 가능한 코드를 작성하기 위한 인터페이스의 강력함을 보여주는 도형 계산기를 만들어 보겠습니다. 면적을 계산하기 위한 계약을 정의하는 인터페이스를 만들고, 이를 서로 다른 도형 클래스에서 구현하게 됩니다.

코드는 다음 네 개의 파일로 구성됩니다:

  • Calculable.php — 단일 메서드 시그니처인 calculateArea()를 가진 Calculable 인터페이스를 정의합니다. 이 계약은 계산 가능한 모든 도형이 자신의 면적을 계산할 수 있도록 보장합니다.
  • Rectangle.phpCalculable을 구현하는 Rectangle 클래스를 생성합니다. 인터페이스 파일을 포함하세요. 이 클래스는 생성자를 통해 설정되는 private $width$height 속성을 가져야 합니다. 너비와 높이를 곱한 면적을 반환하도록 calculateArea()를 구현하세요.
  • Circle.php — 마찬가지로 Calculable을 구현하는 Circle 클래스를 생성합니다. 인터페이스 파일을 포함하세요. 이 클래스는 생성자를 통해 설정되는 private $radius 속성을 가져야 합니다. pi() * radius * radius 공식을 사용하여 면적을 반환하도록 calculateArea()를 구현하세요.
  • main.php — 두 도형 파일을 모두 포함합니다. Calculable 파라미터와 도형 이름(문자열)을 받는 displayArea 함수를 만듭니다. 이 함수는 "[name] area: [area]" 형식을 출력해야 하며, 여기서 면적은 number_format()을 사용하여 소수점 둘째 자리까지 반올림해야 합니다.

사각형의 너비, 사각형의 높이, 원의 반지름, 그리고 원의 도형 이름까지 총 네 개의 입력을 받습니다. 너비와 높이로 Rectangle을 생성하고(float로 변환), 반지름으로 Circle을 생성합니다(float로 변환). displayArea()를 두 번 호출하세요. 첫 번째는 사각형과 함께 "Rectangle"을 이름으로 사용하고, 두 번째는 원과 함께 제공된 도형 이름을 사용합니다. 각 결과는 개별 줄에 출력하세요.

displayArea() 함수는 Calculable을 구현하는 모든 도형과 함께 작동합니다. 이 함수는 그것이 사각형의 면적을 계산하는지, 원의 면적을 계산하는지, 아니면 나중에 추가될 다른 도형의 면적을 계산하는지 알 필요가 없습니다. 이것이 바로 인터페이스를 기반으로 프로그래밍하는 것의 묘미입니다!

직접 해보기

<?php
// 도형 파일 포함
require_once 'Rectangle.php';
require_once 'Circle.php';

// TODO: displayArea라는 이름의 함수 생성
// Calculable 파라미터와 도형 이름(문자열)을 받아야 함
// 출력: "[name] area: [area]", 여기서 area는 number_format()을 사용하여 소수점 둘째 자리까지 반올림함

// 입력 읽기
$width = floatval(trim(fgets(STDIN)));
$height = floatval(trim(fgets(STDIN)));
$radius = floatval(trim(fgets(STDIN)));
$circleName = trim(fgets(STDIN));

// TODO: 너비와 높이를 사용하여 Rectangle 생성

// TODO: 반지름을 사용하여 Circle 생성

// TODO: "Rectangle"을 이름으로 사용하여 사각형에 대해 displayArea() 호출

// TODO: 제공된 도형 이름을 사용하여 원에 대해 displayArea() 호출
?>

객체 지향 프로그래밍의 모든 레슨