Menu
Coddy logo textTech

Recapitulação - Shape Builder

Parte da seção Programação Orientada a Objetos do Journey de Dart da Coddy — lição 16 de 110.

challenge icon

Desafio

Fácil

Vamos construir uma classe Rectangle que reúne todas as técnicas de construtores que você aprendeu neste capítulo. Você criará uma classe de forma versátil que pode ser instanciada de várias maneiras.

Você organizará seu código em dois arquivos:

  • rectangle.dart: Defina uma classe Rectangle com o seguinte:
    • Dois campos final double: width e height
    • Dois campos final double calculados: area e perimeter
    • Um construtor principal que recebe width e height, usando uma lista de inicialização para calcular area (width × height) e perimeter (2 × (width + height))
    • Um construtor nomeado Rectangle.square(double side) que redireciona para o construtor principal com largura e altura iguais
    • Um construtor nomeado Rectangle.golden(double width) que cria um retângulo usando a proporção áurea (height = width × 1.618), redirecionando para o construtor principal
    • Um construtor constante Rectangle.unit() que cria um retângulo 1×1 (você precisará de um construtor const separado para isso)
    • Um método display() que imprime as informações do retângulo
  • main.dart: Importe sua classe rectangle e crie quatro retângulos:
    • Um retângulo personalizado com largura 4.0 e altura 3.0
    • Um quadrado com lado 5.0
    • Um retângulo áureo com largura 10.0
    • Um retângulo unitário usando o construtor constante (crie-o como uma constante de tempo de compilação)
    Chame display() em cada retângulo na ordem listada acima.

O método display() deve imprimir exatamente neste formato:

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

Saída esperada:

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

Experimente você mesmo

import 'rectangle.dart';

void main() {
  // TODO: Crie um retângulo personalizado com largura 4.0 e altura 3.0

  // TODO: Crie um quadrado com lado 5.0

  // TODO: Crie um retângulo áureo com largura 10.0

  // TODO: Crie um retângulo unitário usando o construtor constante
  // (crie-o como uma constante de tempo de compilação usando 'const')

  // TODO: Chame display() em cada retângulo na ordem listada acima
}

Todas as lições de Programação Orientada a Objetos