1
resposta

[Projeto] Minha solução

Olá, tudo bem?

Segue minha sugestão de solução:

Principal.java

import java.util.ArrayList;
import modelos.Animal;
import modelos.Cachorro;
import modelos.Produto;
import modelos.Forma;
import modelos.Quadrado;
import modelos.Circulo;
import modelos.ContaBancaria;

public class Principal {
    public static void main(String[] args) {
        System.out.println("\n------Exercício 1");
        ArrayList<String> listaNumeros = new ArrayList<>();
        listaNumeros.add("1");
        listaNumeros.add("2");
        listaNumeros.add("3"); 

        for (String numero : listaNumeros) {
            System.out.println(numero);
        }

        System.out.println("\n------Exercício 2");
        Cachorro cachorro = new Cachorro();
        Animal animal = (Animal) cachorro;

        System.out.println("\n------Exercício 3");
        if (animal instanceof Cachorro) {
            Cachorro cachorro2 = (Cachorro) animal;
            cachorro2.somAnimal();
        } else {
            System.out.println("O objeto não é cachorro");
        }

        System.out.println("\n------Exercício 4");
        Produto produto1 = new Produto("produto1", 10.00);
        Produto produto2 = new Produto("produto2", 20.00);
        Produto produto3 = new Produto("produto3", 30.00);

        ArrayList<Produto> listaProdutos = new ArrayList<>();
        listaProdutos.add(produto1);
        listaProdutos.add(produto2);
        listaProdutos.add(produto3);

        double somaPrecos = 0;
        for (Produto produto : listaProdutos) {
            somaPrecos += produto.getPreco();
        }

        double precoMedioProdutos = somaPrecos / listaProdutos.size();
        System.out.println("O preço médio da lista de produtos é: R$" + precoMedioProdutos);


        System.out.println("\n------Exercício 5");
        ArrayList<Forma> formas = new ArrayList<>();
        formas.add(new Circulo(5));
        formas.add(new Quadrado(4));

        for (Forma forma : formas) {
            if (forma instanceof Circulo) {
                System.out.println("Area do círculo: " + forma.calcularArea());
            } else if (forma instanceof Quadrado) {
                System.out.println("Area do quadrado: " + forma.calcularArea());
            }
        }


        System.out.println("\n------Exercício 6");
        ContaBancaria conta1 = new ContaBancaria(123, 1000.00);
        ContaBancaria conta2 = new ContaBancaria(124, 1200.00);
        ContaBancaria conta3 = new ContaBancaria(125, 900.00);

        ArrayList<ContaBancaria> listaContaBancaria = new ArrayList<>();
        listaContaBancaria.add(conta1);
        listaContaBancaria.add(conta2);
        listaContaBancaria.add(conta3);

        ContaBancaria contaMaiorSaldo = listaContaBancaria.get(0);
        for (ContaBancaria conta : listaContaBancaria) {
            if (conta.getSaldo() > contaMaiorSaldo.getSaldo()) {
                contaMaiorSaldo = conta;
            }
        }

        System.out.println("A conta com maior saldo é a " + contaMaiorSaldo.getNumeroConta() + " com o saldo de R$" + contaMaiorSaldo.getSaldo());

    }
}

Animal.java

package modelos;

public class Animal {
    
    public void somAnimal(){
        System.out.println("Som do animal");
    }
}

Cachorro.java

package modelos;
import modelos.Animal;

public class Cachorro extends Animal {
    
    @Override
    public void somAnimal() {
        System.out.println("Latido");
    }
}

Produto.java

package modelos;

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

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

    public double getPreco() {
        return preco;
    }
}

Quadrado.java

package modelos;
import modelos.Forma;

public class Quadrado implements Forma {
    private double lado;

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

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

Circulo.java

package modelos;
import modelos.Forma;

public class Circulo implements Forma {
    private double raio;

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

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

ContaBancaria.java

package modelos;

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

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

    public int getNumeroConta() {
        return numeroConta;
    }

    public double getSaldo() {
        return saldo;
    }
}
1 resposta

Olá, Roberto! Tudo bem?

Pelo que pude observar, sua solução para os exercícios propostos parece estar correta!

Parabéns pelo seu esforço e dedicação! Você parece estar compreendendo bem os conceitos de ArrayLists, casting de objeto e instanceof em Java.

Grande abraço e boa sorte nos estudos!