요약 - Shape Builder
Coddy Dart 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 110개 중 16번째.
챌린지
쉬움이 장에서 배운 모든 생성자 기술을 결합한 Rectangle 클래스를 만들어 보겠습니다. 여러 가지 방식으로 인스턴스화할 수 있는 다재다능한 도형 클래스를 만들게 됩니다.
코드를 두 개의 파일로 구성합니다:
rectangle.dart: 다음을 포함하는Rectangle클래스를 정의합니다:- 두 개의
final double필드:width및height - 두 개의 계산된
final double필드:area및perimeter width와height를 인자로 받는 메인 생성자. 이 생성자는 이니셜라이저 리스트를 사용하여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()를 호출하세요
}