Ficha 02 · Java avançado
Exercício 1 · Excepção custom
Cria uma excepção IdadeInvalidaException extends Exception. Modifica o setIdade de uma classe Pessoa para lançar esta excepção se a idade for negativa ou > 150. Demonstra try-catch.
Resposta:
Exercício 2 · Ler e processar ficheiro
Cria um ficheiro numeros.txt com 10 números (um por linha). Lê o ficheiro, calcula soma, média e máximo.
Resposta:
Exercício 3 · Escrever log
Cria uma classe Logger com método log(String msg) que adiciona uma linha ao ficheiro app.log no formato [timestamp] msg. Usa Files.writeString com APPEND.
Resposta:
Exercício 4 · Streams — produtos
Dado este array:
List<Produto> produtos = List.of(
new Produto("Caneta", 1.50),
new Produto("Caderno", 5.00),
new Produto("Lapis", 0.50),
new Produto("Mochila", 35.00),
new Produto("Estojo", 8.00)
);
Usa streams para: - Filtrar produtos com preço > 5€. - Imprimir os nomes em maiúsculas. - Calcular o preço total de todos os produtos.
Resposta:
Exercício 5 · JDBC — conectar a SQLite
Cria um projecto Maven com SQLite (org.xerial:sqlite-jdbc). Conecta à BD loja.db, cria tabela produtos (id INTEGER PRIMARY KEY, nome TEXT, preco REAL), e insere 3 produtos.
Resposta:
Exercício 6 · JDBC — DAO completo
Cria a classe ProdutoDAO com métodos listar(), inserir(Produto), actualizar(Produto), apagar(int id) para a BD do exercício 5.
Resposta:
Exercício 7 · Teste JUnit
Adiciona JUnit 5 ao projecto. Cria classe Calculadora com somar, subtrair, dividir (lança ArithmeticException se divisor for 0). Escreve teste para cada método.
Resposta:
Exercício 8 · App CLI — Gestor de tarefas
Cria uma aplicação CLI (loop com menu) que permita: - Adicionar tarefa (com descrição). - Listar todas (com índice). - Marcar como feita. - Apagar. - Sair.
Guarda as tarefas em ArrayList<Tarefa> (sem persistência para simplificar).
Resposta: