Menu
Coddy logo textTech

Итоги — Shape Builder

Часть раздела Объектно-ориентированное программирование путешествия по Dart на Coddy — урок 16 из 110.

challenge icon

Задание

Легко

Давайте создадим класс 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), который перенаправляет к основному конструктору с равными шириной и высотой
    • Именованный конструктор Rectangle.golden(double width), который создает прямоугольник с использованием золотого сечения (height = width × 1.618), перенаправляя к основному конструктору
    • Константный конструктор Rectangle.unit(), который создает прямоугольник 1×1 (для этого вам понадобится отдельный 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() для каждого прямоугольника в порядке, указанном выше
}

Все уроки раздела Объектно-ориентированное программирование