Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resposta: representando retângulos e calculando área

Classe:

class Retangulo
{
    public Retangulo(double altura, double largura)
    {
        Altura = altura;
        Largura = largura;
        Area = Altura * Largura;
    }

    public double Altura { get; }
    public double Largura { get; }
    
    public double Area { get; } 

    public void CalcularArea()
    {
        Console.WriteLine($"A área do retangulo é de: {Area}");

        
    }
}

Objeto:

Retangulo retangulo1 = new(5, 8);

retangulo1.CalcularArea();
1 resposta
solução!

Oii, Philip.

Ficou muito interessante a sua abordagem. O uso de construtores é uma prática excelente para garantir que o objeto já nasça com os dados preenchidos, evitando um retângulo "vazio".

No entanto, para alinhar sua solução com o objetivo didático do exercício e com a flexibilidade esperada em Orientação a Objetos, tenho dois pontos de atenção para você.

O primeiro é sobre a imutabilidade. Note que você calculou a Area dentro do construtor e definiu as propriedades apenas com get. Isso significa que, uma vez criado, esse retângulo nunca pode mudar de tamanho. Se a intenção fosse alterar a altura depois, a sua área ficaria desatualizada (já que foi calculada apenas no nascimento do objeto).

A sugestão do instrutor é que o método CalcularArea() faça a conta no momento da chamada. Assim, ele sempre pega o valor mais atualizado da altura e largura.

O segundo ponto é sobre o retorno. O exercício pede que o método devolva o valor (return) em vez de imprimir na tela (void). Isso é importante porque a classe deve apenas fazer os cálculos, deixando para o programa principal decidir se vai imprimir, salvar num banco ou usar esse número para outra conta.

Ajustando para esse modelo mais dinâmico, ficaria assim:

class Retangulo
{
    // o 'set' permite que o valor seja alterado depois da criação
    public double Altura { get; set; }
    public double Largura { get; set; }

    // o construtor é opcional aqui, mas se quiser manter, pode:
    public Retangulo(double altura, double largura)
    {
        Altura = altura;
        Largura = largura;
    }

    // o método retorna double e calcula baseando-se no estado ATUAL
    public double CalcularArea()
    {
        return Altura * Largura;
    }
}

// uso:
Retangulo retangulo1 = new Retangulo(5, 8);
// quem chama decide o que fazer com o resultado (imprimir)
Console.WriteLine($"A área do retângulo é: {retangulo1.CalcularArea()}");

Perceba que removemos a propriedade Area fixa e transformamos o cálculo em uma ação que ocorre sempre que chamamos o método.

Continue explorando essas possibilidades. Bons estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!