2
respostas

[Sugestão] Solução

package Principal;

import Ex2.Animal;
import Ex2.Cachorro;
import Ex4.Produto;
import Ex5.Circulo;
import Ex5.Forma;
import Ex5.Quadrado;
import Ex6.ContaBancaria;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.Optional;

public class Principal {
    static void main(String[] args) {

        //Ex1

        ArrayList<String>listaDeNomes = new ArrayList<String>();
        listaDeNomes.add("Maria");
        listaDeNomes.add("Rodrigo");
        listaDeNomes.add("Juanito");
        listaDeNomes.add("Antonio");
        listaDeNomes.add("Maria");

        for (String listaDeNome : listaDeNomes) {
            System.out.println(listaDeNome);
        }

        //ex 2 e 3

        Cachorro cachorro = new Cachorro();
        // Animal animal = (Animal) cachorro;
        // animal.fazerBarulho();
        if (cachorro instanceof Animal animal) {
            animal.fazerBarulho();
        }

        //ex 4

        Produto produto = new Produto("Melancia", 10.70);
        produto.adicionarProduto();
        Produto produto2 = new Produto("Banana", 1.60);
        produto2.adicionarProduto();
        Produto produto3 = new Produto("Maçã Verde", 5);
        produto3.adicionarProduto();
        Produto produto4 = new Produto("Maça", 3);
        produto4.adicionarProduto();
        Produto produto5 = new Produto("DoritosG", 20);
        produto5.adicionarProduto();
        System.out.println(String.format("Media de preço no carrinho: %.2f", produto.mediaPreco()));

        //ex 5

        Circulo circulo = new Circulo(8.75);
        Quadrado quadrado = new Quadrado(10.30);
        ArrayList<Forma> formas = new ArrayList<Forma>();
        formas.add(circulo);
        formas.add(quadrado);
        for (Forma forma : formas) {
            System.out.println(forma.getDescricao());
            System.out.println(String.format("Área calculada: %.2f", forma.calcularArea()));
            System.out.println("----------------------------------------");
        }

        //ex 6

        ContaBancaria contaBancaria = new ContaBancaria(20506, 17575.08);
        ContaBancaria contaBancaria2 = new ContaBancaria(40706, 1117575);
        ContaBancaria contaBancaria3 = new ContaBancaria(53502, 70575.40);
        ContaBancaria contaBancaria4 = new ContaBancaria(10376, 9575.30);
        ContaBancaria contaBancaria5 = new ContaBancaria(10406, 12575.70);

        ArrayList<ContaBancaria> listaDeContas = new ArrayList<>();
        listaDeContas.add(contaBancaria);
        listaDeContas.add(contaBancaria2);
        listaDeContas.add(contaBancaria3);
        listaDeContas.add(contaBancaria4);
        listaDeContas.add(contaBancaria5);


        for (ContaBancaria listaDeConta : listaDeContas) {
            System.out.println("Conta:  " + listaDeConta.getNumeroConta());
            System.out.println("Saldo:  " + listaDeConta.getSaldo());
            System.out.println("------------------------------------");
        }
        ContaBancaria maiorSaldo = listaDeContas.stream()
                .max(Comparator.comparingDouble(ContaBancaria::getSaldo))
                .orElse(new ContaBancaria());
        
            System.out.println("**** Conta com maior saldo **** ");
            System.out.println("Conta:  " + maiorSaldo.getNumeroConta());
            System.out.println("Conta:  " + maiorSaldo.getSaldo());



    }


}
package Ex2;

public class Animal {
    public void fazerBarulho(){
        System.out.println("WRAAAAAAAAAAAH");
    }
}
package Ex2;

public class Cachorro extends Animal {

    @Override
    public void fazerBarulho() {
        System.out.println("Latido");
    }
}
package Ex4;

import java.util.ArrayList;

public class Produto {
    private String nome;
    private double preco;

    public Produto(String nome, double preco) {
        this.nome = nome;
        this.preco = preco;
    }

    private static ArrayList<Produto> listaDeProdutos = new ArrayList<>();

    public void adicionarProduto() {
        listaDeProdutos.add(this);
    }

    public double mediaPreco() {
        double soma = 0;
        for (Produto produto : listaDeProdutos) {
            soma += produto.preco;
        } return soma/listaDeProdutos.size();
    }

}
2 respostas
package Ex5;

public interface Forma {
    public double calcularArea();
    public String getDescricao();
}
package Ex5;

public class Quadrado implements Forma {

    private double lado;


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

    @Override
    public double calcularArea() {
        return lado * lado;
    }

    @Override
    public String getDescricao() {
        return "Quadrado com os lados de: " + lado + " cm";
    }
}
package Ex5;

public class Circulo implements Forma {
    private double raio;

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

    @Override
    public double calcularArea() {
        return Math.PI * raio * raio;
    }

    @Override
    public String getDescricao() {
        return "Circulo com um raio de: " + raio + " cm";
    }
}
package Ex6;

public class ContaBancaria {
    private int numeroConta;
    private double saldo;

    public ContaBancaria() {

    }

    public int getNumeroConta() {
        return numeroConta;
    }

    public double getSaldo() {
        return saldo;
    }


    public ContaBancaria(int numeroConta, double saldo) {
        this.numeroConta = numeroConta;
        this.saldo = saldo;
    }
}

Oi, Leonardo! Como vai?

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

Com o que você descreveu, ficou legal ver como você organizou cada exercício em blocos separados. Usar instanceof com pattern matching e aplicar interfaces para as formas geométricas mostra que você está entendendo bem o conceito de polimorfismo.

Uma dica interessante para o futuro é usar o método forEach de forma mais enxuta em listas. Veja este exemplo:


ArrayList<String> nomes = new ArrayList<>();
nomes.add("Ana");
nomes.add("Leo");

nomes.forEach(n -> System.out.println(n));

Esse código percorre a lista e imprime cada item usando expressão lambda.

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