Partilhar: WhatsApp
aulify
UC UC00619 · T. Desenv. Software

Ficha 02 · Java avançado

Excepções, ficheiros, JDBC, testes
Versão · Aluno
Tempo · 4 horas
Aluno(a)
Turma
Data

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: