Menu
Coddy logo textTech

요약 - Shape Builder

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

challenge icon

챌린지

쉬움

이 장에서 배운 모든 생성자 기술을 결합한 Rectangle 클래스를 만들어 보겠습니다. 여러 가지 방식으로 인스턴스화할 수 있는 다재다능한 도형 클래스를 만들게 됩니다.

코드를 두 개의 파일로 구성합니다:

  • rectangle.dart: 다음을 포함하는 Rectangle 클래스를 정의합니다:
    • 두 개의 final double 필드: widthheight
    • 두 개의 계산된 final double 필드: areaperimeter
    • widthheight를 인자로 받는 메인 생성자. 이 생성자는 이니셜라이저 리스트를 사용하여 area (width × height)와 perimeter (2 × (width + height))를 계산합니다.
    • 동일한 너비와 높이로 메인 생성자에 리다이렉트하는 명명된 생성자 Rectangle.square(double side)
    • 황금비(height = width × 1.618)를 사용하여 사각형을 생성하고 메인 생성자로 리다이렉트하는 명명된 생성자 Rectangle.golden(double width)
    • 1×1 사각형을 생성하는 상수 생성자 Rectangle.unit() (이를 위해 별도의 const 생성자가 필요합니다)
    • 사각형의 정보를 출력하는 display() 메서드
  • main.dart: 사각형 클래스를 임포트하고 네 개의 사각형을 생성합니다:
    • 너비 4.0, 높이 3.0인 커스텀 사각형
    • 변의 길이가 5.0인 정사각형
    • 너비가 10.0인 황금 사각형
    • 상수 생성자를 사용한 단위 사각형 (컴파일 타임 상수로 생성하세요)
    위에 나열된 순서대로 각 사각형에 대해 display()를 호출합니다.

display() 메서드는 정확히 다음 형식으로 출력해야 합니다:

Rectangle [width]x[height] | Area: [area] | Perimeter: [perimeter]

예상 출력:

Rectangle 4.0x3.0 | Area: 12.0 | Perimeter: 14.0
Rectangle 5.0x5.0 | Area: 25.0 | Perimeter: 20.0
Rectangle 10.0x16.18 | Area: 161.8 | Perimeter: 52.36
Rectangle 1.0x1.0 | Area: 1.0 | Perimeter: 4.0

직접 해보기

import 'rectangle.dart';

void main() {
  // TODO: 너비 4.0, 높이 3.0인 사용자 정의 사각형을 생성하세요

  // TODO: 변의 길이가 5.0인 정사각형을 생성하세요

  // TODO: 너비가 10.0인 황금 사각형을 생성하세요

  // TODO: 상수 생성자를 사용하여 단위 사각형을 생성하세요
  // ('const'를 사용하여 컴파일 타임 상수로 생성하세요)

  // TODO: 위에 나열된 순서대로 각 사각형에 대해 display()를 호출하세요
}

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