1
resposta

Desafio: hora da Pratica


import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        ArrayList<Forma> listaFormas = new ArrayList<>();

        var circulo = new Circulo(10);
        var quadrado = new Quadrado(10);

        listaFormas.add(circulo);
        listaFormas.add(quadrado);



        for (Forma forma : listaFormas){

            System.out.println("===========================");
            System.out.println("Area: " + forma.calcularArea());

        }






    }
}
public interface Forma {
    public double calcularArea();
}
public class Circulo implements Forma{
    double circulo;

    public double getCirculo() {
        return circulo;
    }

    public Circulo(double circulo) {
        this.circulo = circulo;
    }

    @Override
    public double calcularArea() {
       double area = 3.14 * (circulo * circulo);

        return (int) area;
    }



}
public class Quadrado implements Forma{
    int lado;

    public int getLado() {
        return lado;
    }

    public Quadrado(int lado) {
        this.lado = lado;
    }

    @Override
    public double calcularArea() {
        int quadrado;
        quadrado = lado * lado;

        return (double) quadrado;
    }
}

1 resposta

Olá, Alvaro, como vai?

Seu código atende perfeitamente ao que foi proposto no exercício. A lógica de armazenamento em uma lista do tipo interface e a iteração para o cálculo das áreas estão corretas. Um ponto de melhoria interessante no método calcularArea da classe Circulo é manter o retorno como double sem realizar o casting para int, para preservar a precisão das casas decimais. No Java, você também pode utilizar a constante Math.PI para obter um valor mais exato de pi em cálculos geométricos.

Parabéns pela dedicação e por compartilhar sua resolução. Continue praticando e postando seus avanços. O fórum está à disposição.

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