1
resposta

Desafio 03: ForEach e Arrays

1.Crie um ArrayList de strings e utilize um loop foreach para percorrer e imprimir cada elemento da lista.

Filme filme1 = new Filme("Interestelar", 2015, "Um grupo de exploradores viaja através de um buraco de minhoca em busca de um novo lar para a humanidade.", true,8.7, "Christopher Nolan",169);
        Filme filme2 = new Filme("Tropa de Elite", 2007, "Um capitão do BOPE tenta combater o tráfico de drogas no Rio de Janeiro.", true, 8.1, "José Padilha",115 );
        Serie serie1 = new Serie("Breaking Bad", 2008, "Um professor de química se torna um fabricante de metanfetamina após ser diagnosticado com câncer.", true, 9.5, 0, 5, 13);

        Filme f1 = new Filme("Cidade de Deus", 2002, 8.7);
        Filme f2 = new Filme("De Volta Para o Futuro" ,1985, 10.0);
        ArrayList <Tipo> listaFilmes = new ArrayList<>();

        listaFilmes.add(filme1);
        listaFilmes.add(filme2);
        listaFilmes.add(f1);
        listaFilmes.add(f2);
        listaFilmes.add(serie1);


        for (Tipo mostragem: listaFilmes) {
            System.out.println(mostragem);
        }

2.Crie uma classe Animal e uma classe Cachorro que herda de Animal. Em seguida, crie um objeto da classe Cachorro e faça o casting para a classe Animal.

        Cachorro dog = new Cachorro("Cachorro", "Yorkshire");
        Cachorro dog2 = new Cachorro("Cachorro", "Pinscher");
        Cachorro dog3 = new Cachorro("Cachorro", "Golden Retriever");


        Animal a1 = dog;
        Animal a2 = dog2;
        Animal a3 = dog3;

        System.out.println(a1.getRaca());
        System.out.println(a2.getRaca());
        System.out.println(a3.getRaca());
    }

3. Modifique o Exercício 2 para incluir uma verificação usando instanceof para garantir que o objeto seja do tipo correto antes de fazer o casting.

        Cachorro dog = new Cachorro("Cachorro", "Yorkshire");
        
        Animal a1 = dog;

        if(a1 instanceof Cachorro == true){
            System.out.println(a1.getRaca());
        }

4. Crie uma classe Produto com propriedades como nome e preço. Em seguida, crie uma lista de produtos e utilize um loop para calcular e imprimir o preço médio dos produtos.

        Produto p1 = new Produto("Leite", 4.99);
        Produto p2 = new Produto("Café", 29.99);
        Produto p3 = new Produto("Arroz", 21.99);

        ArrayList<Produto> produtos = new ArrayList<>();

        produtos.add(p1);
        produtos.add(p2);
        produtos.add(p3);

        Integer tamanhoArray = produtos.size();

        Double precoMedio = 0.0;

        for (Produto listarProdutos : produtos){
            System.out.println(listarProdutos);
            precoMedio += listarProdutos.getPreco();
        }
        precoMedio = precoMedio/tamanhoArray;
        System.out.println("\nPreço médio dos produtos: " + precoMedio);
    }

5.Crie uma interface Forma com um método calcularArea(). Implemente a interface em duas classes, por exemplo, Circulo e Quadrado. Em seguida, crie uma lista de formas (objetos da interface Forma) e utilize um loop para calcular e imprimir a área de cada forma.

Método Círculo:

public class Circulo implements Forma
@Override
    public Double calcularArea() {
        Double raioD = raio.doubleValue();
        area = pi * (raioD*raioD);
        return area;
    }

Método Quadrado:

public class Quadrado implements Forma
@Override
    public Double calcularArea() {
        double ladoDouble = lado.doubleValue();
        area = (ladoDouble*ladoDouble);
        return area;
    }

Main:

        Circulo c1 = new Circulo(4);
        Circulo c2 = new Circulo(6);
        Quadrado q1 = new Quadrado(4);


        ArrayList <Forma> objetos = new ArrayList<>();
        objetos.add(c1);
        objetos.add(c2);
        objetos.add(q1);

        for(Forma listaFormas : objetos){
            System.out.println("Área: " + listaFormas.calcularArea() + "cm²");
        }

6. Crie uma classe ContaBancaria com propriedades como número da conta e saldo. Em seguida, crie uma lista de contas bancárias com diferentes saldos. Utilize um loop para encontrar e imprimir a conta com o maior saldo.

ContaBancaria c1 = new ContaBancaria("0116-1", 20000.00);
        ContaBancaria c2 = new ContaBancaria("2221-2", 4000.00);

        ArrayList<ContaBancaria> contas = new ArrayList<>();

        contas.add(c1);
        contas.add(c2);

        for (ContaBancaria listarContas : contas) {
            System.out.println(listarContas);
        }
        if (c1.getSaldo()>c2.getSaldo()){
            System.out.println("Maior Saldo: " + contas.get(0));

        }
        else if(c2.getSaldo()>c1.getSaldo()){
            System.out.println("Maior Saldo: " + contas.get(1));
        }
        else{
            System.out.println("Valores das contas iguais.");
        }
1 resposta

Oi, Paulo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu conjunto de exercícios está bem estruturado e mostra domínio de conceitos como herança, polimorfismo, interface, coleções e casting. O uso do instanceof para garantir segurança ao fazer o cast é uma prática importante para evitar erros em tempo de execução, e seu cálculo do preço médio dos produtos também ficou bem claro.

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