2
respostas

[Desafio] Java Lista de objetos distintos

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

import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        ArrayList<String> lista = new ArrayList<>();
        lista.add("Elemento 1");
        lista.add("Elemento 2");
        lista.add("Elemento 3");

        for (String elemento : lista) {
            System.out.println(elemento);
        }
    }
}

Exercício 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.

class Animal {
    public void fazerSom() {
        System.out.println("O animal faz um som");
    }
}

class Cachorro extends Animal {
    public void fazerSom() {
        System.out.println("O cachorro late");
    }
}

public class Principal {
    public static void main(String[] args) {
        Cachorro cachorro = new Cachorro();
        Animal animal = (Animal) cachorro;
        animal.fazerSom();
    }
}

Exercício 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.

class Animal {
    public void fazerSom() {
        System.out.println("O animal faz um som");
    }
}

class Cachorro extends Animal {
    public void fazerSom() {
        System.out.println("O cachorro late");
    }
}

public class Principal {
    public static void main(String[] args) {
        Animal animal = new Cachorro();

        if (animal instanceof Cachorro) {
            Cachorro cachorro = (Cachorro) animal;
            cachorro.fazerSom();
        } else {
            System.out.println("O objeto não é um Cachorro");
        }
    }
}

Exercício 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.

import java.util.ArrayList;

class Produto {
    String nome;
    double preco;

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

public class Principal {
    public static void main(String[] args) {
        ArrayList<Produto> produtos = new ArrayList<>();
        produtos.add(new Produto("Produto 1", 10.0));
        produtos.add(new Produto("Produto 2", 20.0));
        produtos.add(new Produto("Produto 3", 30.0));

        public double soma = 0.0;
        for (Produto produto : produtos) {
            soma += produto.getPreco();
        }
        
        public double precoMedio = soma / produtos.size();
        System.out.println("Preço médio: " + precoMedio);
    }
}

Exercício 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.

import java.util.ArrayList;

interface Forma {
    double calcularArea();
}

class Circulo implements Forma {
    double raio;

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

    public double calcularArea() {
        return 3.14 * raio * raio;
    }
}

class Quadrado implements Forma {
    double lado;

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

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

public class Principal {
    public static void main(String[] args) {
        ArrayList<Forma> formas = new ArrayList<>();
        formas.add(new Circulo(2.0));
        formas.add(new Quadrado(3.0));

        for (Forma forma : formas) {
            System.out.println("Área: " + forma.calcularArea());
        }
    }
}
2 respostas

Exercício 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.

import java.util.ArrayList;

class ContaBancaria {
    String numeroConta;
    double saldo;

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

    public double getSaldo() {
        return saldo;
    }

    public String getNumeroConta() {
        return numeroConta;
    }
}

public class Principal {
    public static void main(String[] args) {
        ArrayList<ContaBancaria> contas = new ArrayList<>();
        contas.add(new ContaBancaria("593", 1500.0));
        contas.add(new ContaBancaria("048", 2500.0));
        contas.add(new ContaBancaria("285", 500.0));

        ContaBancaria contaMaiorSaldo = contas.get(0);

        for (ContaBancaria conta : contas) {
            if (conta.getSaldo() > contaMaiorSaldo.getSaldo()) {
                contaMaiorSaldo = conta;
            }
        }

        System.out.println("Conta com maior saldo: " + contaMaiorSaldo.getNumeroConta() + " com saldo de " + contaMaiorSaldo.getSaldo());
    }
}

Boa tarde, Rodrigo! Tudo bem?

Você fez um ótimo trabalho resolvendo todos os exercícios propostos. Existem alguns pontos de correção que devem ser feitos na resposta do exercício 4, deixo abaixo os pontos:

Tipo de Retorno do Método getPreco:

No seu código, o método getPreco está retornando int, mas a variável preco é do tipo double. Isso pode causar perda de precisão. Modifiquei o tipo de retorno para double, como demonstrado abaixo:

public double getPreco() {
        return preco;
    }

Declaração de Variáveis:

As variáveis soma e precoMedio foram declaradas dentro do método main com o modificador public, o que não é necessário e causa erro de compilação. Usar o modificador public dentro de métodos não é permitido e não faz sentido, já que a visibilidade pública é usada para membros de classe (atributos e métodos) e não para variáveis locais.

Deixo abaixo o código do exercício 4 com as correções aplicadas:

import java.util.ArrayList;

class Produto {
    String nome;
    double preco;

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

    public double getPreco() {
        return preco;
    }
    
}

public class Principal {
    public static void main(String[] args) {
        ArrayList<Produto> produtos = new ArrayList<>();
        produtos.add(new Produto("Produto 1", 10.0));
        produtos.add(new Produto("Produto 2", 20.0));
        produtos.add(new Produto("Produto 3", 30.0));

        double soma = 0.0;
        for (Produto produto : produtos) {
            soma += produto.getPreco();
        }

        double precoMedio = soma / produtos.size();
        System.out.println("Preço médio: " + precoMedio);
    }
}

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado