Exercício 1: ArrayList de strings com foreach loop
import java.util.ArrayList;
public class Main {
    public static void main(String[] args) {
        ArrayList<String> listaDeStrings = new ArrayList<>();
        listaDeStrings.add("Maçã");
        listaDeStrings.add("Banana");
        listaDeStrings.add("Laranja");
        // Usando um loop foreach para percorrer e imprimir cada elemento da lista
        for (String elemento : listaDeStrings) {
            System.out.println(elemento);
        }
    }
}
Exercício 2: Classe Animal e Cachorro com casting e instanceof
class Animal {}
class Cachorro extends Animal {}
public class Main {
public static void main(String[] args) {
    Animal animal = new Cachorro();
    // Verificando se o objeto é do tipo Cachorro antes de fazer o casting
    if (animal instanceof Cachorro) {
        Cachorro cachorro = (Cachorro) animal;
        System.out.println("Casting para Cachorro realizado com sucesso!");
    } else {
        System.out.println("O objeto não é do tipo Cachorro.");
    }
}
}
Exercício 3: Classe Produto e cálculo do preço médio
import java.util.ArrayList;
class Produto {
String nome;
double preco;
Produto(String nome, double preco) {
    this.nome = nome;
    this.preco = preco;
}
}
public class Main {
public static void main(String[] args) {
    ArrayList<Produto> listaDeProdutos = new ArrayList<>();
    listaDeProdutos.add(new Produto("Camiseta", 29.99));
    listaDeProdutos.add(new Produto("Calça", 49.99));
    listaDeProdutos.add(new Produto("Meias", 9.99));
    double total = 0;
    for (Produto produto : listaDeProdutos) {
        total += produto.preco;
    }
    double media = total / listaDeProdutos.size();
    System.out.println("Preço médio dos produtos: " + media);
}
}
Exercício 4: Interface Forma e cálculo da área
interface Forma {
    double calcularArea();
}
class Circulo implements Forma {
    double raio;
    Circulo(double raio) {
        this.raio = raio;
    }
    @Override
    public double calcularArea() {
        return Math.PI * raio * raio;
    }
}
class Quadrado implements Forma {
    double lado;
    Quadrado(double lado) {
        this.lado = lado;
    }
    @Override
    public double calcularArea() {
        return lado * lado;
    }
}
public class Main {
    public static void main(String[] args) {
        ArrayList<Forma> formas = new ArrayList<>();
        formas.add(new Circulo(3.0));
        formas.add(new Quadrado(4.0));
        for (Forma forma : formas) {
            System.out.println("Área: " + forma.calcularArea());
        }
    }
}
Exercício 5: Classe ContaBancaria e encontrar conta com maior saldo
import java.util.ArrayList;
class ContaBancaria {
    int numero;
    double saldo;
    ContaBancaria(int numero, double saldo) {
        this.numero = numero;
        this.saldo = saldo;
    }
}
public class Main {
    public static void main(String[] args) {
        ArrayList<ContaBancaria> contas = new ArrayList<>();
        contas.add(new ContaBancaria(1, 1000));
        contas.add(new ContaBancaria(2, 2000));
        contas.add(new ContaBancaria(3, 3000));
        ContaBancaria contaMaiorSaldo = contas.get(0);
        for (ContaBancaria conta : contas) {
            if (conta.saldo > contaMaiorSaldo.saldo) {
                contaMaiorSaldo = conta;
            }
        }
        System.out.println("Conta com o maior saldo:");
        System.out.println("Número: " + contaMaiorSaldo.numero);
        System.out.println("Saldo: " + contaMaiorSaldo.saldo);
    }
}